1/*
2 * L4_MABX.c
3 *
4 * Code generation for model "L4_MABX".
5 *
6 * Model version : 1.891
7 * Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
8 * C source code generated on : Tue Jan 28 12:27:43 2020
9 *
10 * Target selection: rti1401.tlc
11 * Note: GRT includes extra infrastructure and instrumentation for prototyping
12 * Embedded hardware selection: Custom Processor->Custom
13 * Code generation objectives: Unspecified
14 * Validation result: Not run
15 */
16
17#include "L4_MABX_trc_ptr.h"
18#include "L4_MABX.h"
19#include "L4_MABX_private.h"
20
21/* Named constants for Chart: '<S79>/Chart' */
22#define L4_MABX_IN_Init ((uint8_T)1U)
23#define L4_MABX_IN_NO_ACTIVE_CHILD ((uint8_T)0U)
24#define L4_MABX_IN_OperatorDisabled ((uint8_T)2U)
25#define L4_MABX_IN_OperatorEnabled ((uint8_T)3U)
26
27/* Named constants for Chart: '<S213>/Relay_control_state_machine' */
28#define L4_MABX_IN_IGN_RELAY_LATCH ((uint8_T)1U)
29#define L4_MABX_IN_IGN_RELAY_UNLATCH ((uint8_T)1U)
30#define L4_MABX_IN_INITIAL ((uint8_T)1U)
31#define L4_MABX_IN_INV_RELAY_LATCH ((uint8_T)2U)
32#define L4_MABX_IN_INV_RELAY_UNLATCH ((uint8_T)2U)
33#define L4_MABX_IN_MABX_RELAY_LATCH ((uint8_T)3U)
34#define L4_MABX_IN_MABX_RELAY_UNLATCH ((uint8_T)3U)
35#define L4_MABX_IN_POWER_DOWN_ROUTINE ((uint8_T)2U)
36#define L4_MABX_IN_POWER_UP_ROUTINE ((uint8_T)3U)
37#define L4_MABX_IN_SENSOR_RELAY_LATCH ((uint8_T)4U)
38#define L4_MABX_IN_SENSOR_RELAY_UNLATCH ((uint8_T)4U)
39#define L4_MABX_IN_WAIT ((uint8_T)5U)
40
41/* Named constants for Chart: '<S285>/Chart' */
42#define L4_MABX_IN_OneLane ((uint8_T)1U)
43#define L4_MABX_IN_OneLane1 ((uint8_T)2U)
44#define L4_MABX_IN_TwoLanes ((uint8_T)3U)
45#define L4_MABX_IN_TwoLanes1 ((uint8_T)4U)
46#define L4_MABX_IN_ZeroLanes ((uint8_T)5U)
47#define L4_MABX_IN_ZeroLanes1 ((uint8_T)6U)
48#define L4_MABX_IN_init_h ((uint8_T)7U)
49
50/* Named constants for Chart: '<S765>/Health State Machine PWM Sensor 1' */
51#define L4_MABX_IN_ERROR ((uint8_T)1U)
52#define L4_MABX_IN_FAILURE_DETECTED ((uint8_T)1U)
53#define L4_MABX_IN_NO_FAILURE ((uint8_T)2U)
54#define L4_MABX_IN_PENDING ((uint8_T)2U)
55
56/* Named constants for Chart: '<S847>/Chart' */
57#define L4_MABX_IN_DiagPassed ((uint8_T)1U)
58#define L4_MABX_IN_SwitchOff ((uint8_T)2U)
59#define L4_MABX_IN_SwitchOn ((uint8_T)3U)
60#define L4_MABX_IN_init_o ((uint8_T)4U)
61
62/* Named constants for Chart: '<S861>/Chart' */
63#define L4_MABX_IN_CheckPacketCount ((uint8_T)1U)
64#define L4_MABX_IN_Init_i ((uint8_T)2U)
65#define L4_MABX_IN_InterframeDelay ((uint8_T)3U)
66#define L4_MABX_IN_InterframeDelay1 ((uint8_T)4U)
67#define L4_MABX_IN_SendTPCM ((uint8_T)5U)
68#define L4_MABX_IN_SendTPDT ((uint8_T)6U)
69#define L4_MABX_IN_StartMsg ((uint8_T)7U)
70#define L4_MABX_IN_WaitForNextPeriod ((uint8_T)8U)
71
72/* Exported block signals */
73real_T GLB_Absolute_Timestamp; /* '<S419>/Rate Transition' */
74real_T ReAX_ActualHandwheelPos; /* '<S445>/Switch' */
75real_T EthernetLinkStatus; /* '<S401>/dsa_tcpip_setup' */
76real_T CurrentAzimuth_rad; /* '<S399>/Switch' */
77real_T TargetAzimuth_rad; /* '<S399>/Switch1' */
78real_T TargetVelocity_kph; /* '<S399>/Switch3' */
79real_T Curvature; /* '<S399>/Switch4' */
80real_T CrosstrackError; /* '<S399>/Switch5' */
81real_T CurrentVelocity_kph; /* '<S399>/Switch2' */
82real_T GPS_X; /* '<S399>/Switch6' */
83real_T GPS_Y; /* '<S399>/Switch7' */
84real_T GPS_Time; /* '<S399>/Switch8' */
85real_T ReAX_EchoedSteerWheelPos; /* '<S445>/Switch' */
86real_T SteerWheelAngle; /* '<S647>/S-Function1' */
87real_T YawRate; /* '<S647>/S-Function1' */
88real_T SPN1810_LongitudinalAcceleration;/* '<S647>/S-Function1' */
89real_T WheelBasedVehicleSpeed; /* '<S508>/S-Function1' */
90real_T BrakeSwitch; /* '<S508>/S-Function1' */
91real_T Lateral_Control_Rate_Limit; /* '<S312>/Constant' */
92real_T Lateral_Control_Output; /* '<S283>/Sum1' */
93real_T Lateral_Control_Rate_Limiter_Output;/* '<S312>/If_Then_Else' */
94real_T SteerCommandDeg; /* '<S80>/sign flip' */
95real_T DesiredSteeringAngle; /* '<S80>/sign2' */
96real_T Lateral_Control_Heading_Error; /* '<S283>/Error Calc' */
97uint32_T DIAG_CAN1_Count_Stuff_Errors; /* '<S28>/S-Function1' */
98uint32_T DIAG_CAN1_Count_Format_Errors;/* '<S28>/S-Function1' */
99uint32_T DIAG_CAN1_Count_Ack_Errors; /* '<S28>/S-Function1' */
100uint32_T DIAG_CAN1_Count_Bit0_Errors; /* '<S28>/S-Function1' */
101uint32_T DIAG_CAN1_Count_Bit1_Errors; /* '<S28>/S-Function1' */
102uint32_T DIAG_CAN1_Count_CRC_Errors; /* '<S28>/S-Function1' */
103uint32_T DIAG_CAN1_Count_RX_Lost; /* '<S28>/S-Function1' */
104uint32_T DIAG_CAN1_Count_RX_OK; /* '<S28>/S-Function1' */
105uint32_T DIAG_CAN1_Count_TX_OK; /* '<S28>/S-Function1' */
106uint32_T DIAG_CAN5_Count_Stuff_Errors; /* '<S20>/S-Function1' */
107uint32_T DIAG_CAN5_Count_Format_Errors;/* '<S20>/S-Function1' */
108uint32_T DIAG_CAN5_Count_Ack_Errors; /* '<S20>/S-Function1' */
109uint32_T DIAG_CAN5_Count_Bit0_Errors; /* '<S20>/S-Function1' */
110uint32_T DIAG_CAN5_Count_Bit1_Errors; /* '<S20>/S-Function1' */
111uint32_T DIAG_CAN5_Count_CRC_Errors; /* '<S20>/S-Function1' */
112uint32_T DIAG_CAN5_Count_RX_Lost; /* '<S20>/S-Function1' */
113uint32_T DIAG_CAN5_Count_RX_OK; /* '<S20>/S-Function1' */
114uint32_T DIAG_CAN5_Count_TX_OK; /* '<S20>/S-Function1' */
115uint32_T DIAG_CAN6_Count_Stuff_Errors; /* '<S21>/S-Function1' */
116uint32_T DIAG_CAN6_Count_Format_Errors;/* '<S21>/S-Function1' */
117uint32_T DIAG_CAN6_Count_Ack_Errors; /* '<S21>/S-Function1' */
118uint32_T DIAG_CAN6_Count_Bit0_Errors; /* '<S21>/S-Function1' */
119uint32_T DIAG_CAN6_Count_Bit1_Errors; /* '<S21>/S-Function1' */
120uint32_T DIAG_CAN6_Count_CRC_Errors; /* '<S21>/S-Function1' */
121uint32_T DIAG_CAN6_Count_RX_Lost; /* '<S21>/S-Function1' */
122uint32_T DIAG_CAN6_Count_RX_OK; /* '<S21>/S-Function1' */
123uint32_T DIAG_CAN6_Count_TX_OK; /* '<S21>/S-Function1' */
124uint32_T DIAG_CAN3_Count_Stuff_Errors; /* '<S18>/S-Function1' */
125uint32_T DIAG_CAN3_Count_Format_Errors;/* '<S18>/S-Function1' */
126uint32_T DIAG_CAN3_Count_Ack_Errors; /* '<S18>/S-Function1' */
127uint32_T DIAG_CAN3_Count_Bit0_Errors; /* '<S18>/S-Function1' */
128uint32_T DIAG_CAN3_Count_Bit1_Errors; /* '<S18>/S-Function1' */
129uint32_T DIAG_CAN3_Count_CRC_Errors; /* '<S18>/S-Function1' */
130uint32_T DIAG_CAN3_Count_RX_Lost; /* '<S18>/S-Function1' */
131uint32_T DIAG_CAN3_Count_RX_OK; /* '<S18>/S-Function1' */
132uint32_T DIAG_CAN3_Count_TX_OK; /* '<S18>/S-Function1' */
133uint32_T DIAG_CAN4_Count_Stuff_Errors; /* '<S19>/S-Function1' */
134uint32_T DIAG_CAN4_Count_Format_Errors;/* '<S19>/S-Function1' */
135uint32_T DIAG_CAN4_Count_Ack_Errors; /* '<S19>/S-Function1' */
136uint32_T DIAG_CAN4_Count_Bit0_Errors; /* '<S19>/S-Function1' */
137uint32_T DIAG_CAN4_Count_Bit1_Errors; /* '<S19>/S-Function1' */
138uint32_T DIAG_CAN4_Count_CRC_Errors; /* '<S19>/S-Function1' */
139uint32_T DIAG_CAN4_Count_RX_Lost; /* '<S19>/S-Function1' */
140uint32_T DIAG_CAN4_Count_RX_OK; /* '<S19>/S-Function1' */
141uint32_T DIAG_CAN4_Count_TX_OK; /* '<S19>/S-Function1' */
142uint32_T DIAG_CAN2_Count_Stuff_Errors; /* '<S17>/S-Function1' */
143uint32_T DIAG_CAN2_Count_Format_Errors;/* '<S17>/S-Function1' */
144uint32_T DIAG_CAN2_Count_Ack_Errors; /* '<S17>/S-Function1' */
145uint32_T DIAG_CAN2_Count_Bit0_Errors; /* '<S17>/S-Function1' */
146uint32_T DIAG_CAN2_Count_Bit1_Errors; /* '<S17>/S-Function1' */
147uint32_T DIAG_CAN2_Count_CRC_Errors; /* '<S17>/S-Function1' */
148uint32_T DIAG_CAN2_Count_RX_Lost; /* '<S17>/S-Function1' */
149uint32_T DIAG_CAN2_Count_RX_OK; /* '<S17>/S-Function1' */
150uint32_T DIAG_CAN2_Count_TX_OK; /* '<S17>/S-Function1' */
151real32_T REAX_Handwheel_Torque; /* '<S421>/Data Type Conversion3' */
152real32_T REAX_Handwheel_Velocity; /* '<S421>/Data Type Conversion4' */
153real32_T REAX_Pull_Compensation; /* '<S421>/Data Type Conversion5' */
154ENUM_CAN_STATUS_DIAG_T DIAG_CAN1_Status;/* '<S1>/Data Type Conversion' */
155ENUM_CAN_STATUS_DIAG_T DIAG_CAN5_Status;/* '<S1>/Data Type Conversion5' */
156ENUM_CAN_STATUS_DIAG_T DIAG_CAN6_Status;/* '<S1>/Data Type Conversion4' */
157ENUM_CAN_STATUS_DIAG_T DIAG_CAN3_Status;/* '<S1>/Data Type Conversion3' */
158ENUM_CAN_STATUS_DIAG_T DIAG_CAN4_Status;/* '<S1>/Data Type Conversion2' */
159ENUM_CAN_STATUS_DIAG_T DIAG_CAN2_Status;/* '<S1>/Data Type Conversion1' */
160uint8_T SupervisorMode; /* '<S399>/Switch9' */
161uint8_T REAX_Current_Mode; /* '<S421>/Data Type Conversion' */
162uint8_T REAX_Req_Mode; /* '<S421>/Data Type Conversion1' */
163uint8_T REAX_Status; /* '<S421>/Data Type Conversion2' */
164uint8_T GLB_SWVERSION_CPV_[100]; /* '<S1093>/Constant' */
165uint8_T MABX_Mode; /* '<S76>/Switch' */
166boolean_T EStop; /* '<S418>/Logical Operator1' */
167boolean_T EnableSw; /* '<S747>/Switch' */
168boolean_T EngagePB; /* '<S745>/AND2' */
169boolean_T BrakeSW; /* '<S418>/Logical Operator3' */
170boolean_T MABX_Heartbeat; /* '<S400>/Cast To Boolean' */
171boolean_T Heartbeat_Ok; /* '<S405>/Switch1' */
172boolean_T RTMapsOk; /* '<S399>/AND' */
173boolean_T LogEventPB; /* '<S744>/AND2' */
174boolean_T EngageReq; /* '<S96>/AND' */
175boolean_T AutonomousEnabled; /* '<S76>/AND' */
176boolean_T AutonomousOutputEnabled; /* '<S76>/Autonomous Mode Switch' */
177boolean_T RateLimiterActive; /* '<S321>/Compare' */
178real_T Pedal_pwm_position; /* '<S767>/Switch' */
179
180/* Exported block parameters */
181real_T APTC_PEDAL_LOW_IDLE_SW_THR_APV = 3.0;/* Variable: APTC_PEDAL_LOW_IDLE_SW_THR_APV
182 * Referenced by: '<S75>/Constant'
183 */
184real_T APTC_TRQ_PED_INV_MAP_PED_POS_MPV[1328] = { 0.0, 0.3125, 0.859375, 1.15625,
185 1.59375, 1.8125, 1.921875, 2.375, 3.8125, 4.3125, 4.84375, 4.96875, 5.71875,
186 6.28125, 6.5625, 6.890625, 7.0, 7.8606557377049, 9.1229508196721,
187 10.327868852459, 11.532786885246, 14.0, 15.25748502994, 15.425149700599,
188 15.718562874251, 16.808383233533, 17.730538922156, 18.023952095808,
189 18.275449101796, 18.904191616766, 19.449101796407, 19.658682634731,
190 19.74251497006, 19.826347305389, 20.287425149701, 21.0, 21.516393442623,
191 22.290983606557, 23.409836065574, 24.758196721311, 24.959016393443,
192 25.217213114754, 26.22131147541, 26.995901639344, 27.311475409836,
193 27.454918032787, 27.512295081967, 27.684426229508, 28.0, 32.101910828025,
194 32.235668789809, 34.687898089172, 35.0, 36.734104046243, 38.815028901734,
195 42.28323699422, 42.514450867052, 44.364161849711, 51.878612716763, 55.0,
196 72.260273972603, 79.041095890411, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
197 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
198 100.0, 100.0, 100.0, 100.0, 0.0, 0.33333333333333, 0.91666666666667,
199 1.2333333333333, 1.7, 1.9333333333333, 2.05, 2.5333333333333, 4.0666666666667,
200 4.6, 5.1666666666667, 5.3, 6.1, 6.7, 7.0, 8.3738317757009, 8.8317757009346,
201 9.8130841121495, 11.252336448598, 12.626168224299, 14.0, 15.559585492228,
202 16.647668393782, 16.79274611399, 17.046632124352, 17.989637305699,
203 18.787564766839, 19.041450777202, 19.259067357513, 19.80310880829,
204 20.274611398964, 20.455958549223, 20.528497409326, 20.60103626943, 21.0,
205 21.476, 21.98, 22.736, 23.828, 25.144, 25.34, 25.592, 26.572, 27.328, 27.636,
206 27.776, 27.832, 28.0, 28.478260869565, 32.478260869565, 32.608695652174, 35.0,
207 35.777777777778, 37.444444444444, 39.444444444444, 42.777777777778, 43.0,
208 44.777777777778, 52.0, 55.0, 61.237623762376, 63.688118811881, 71.262376237624,
209 75.160891089109, 78.613861386139, 96.769801980198, 97.660891089109,
210 98.329207920792, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
211 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 0.57377049180328,
212 1.577868852459, 2.1229508196721, 2.9262295081967, 3.327868852459,
213 3.5286885245902, 4.3606557377049, 7.0, 7.8549618320611, 8.763358778626,
214 8.9770992366412, 10.259541984733, 11.221374045802, 11.702290076336,
215 12.263358778626, 12.450381679389, 12.851145038168, 13.43893129771, 14.0,
216 14.757731958763, 16.309278350515, 17.39175257732, 17.536082474227,
217 17.788659793814, 18.726804123711, 19.520618556701, 19.773195876289,
218 19.989690721649, 20.530927835052, 21.0, 21.132575757576, 21.185606060606,
219 21.238636363636, 21.530303030303, 21.981060606061, 22.458333333333,
220 23.174242424242, 24.208333333333, 25.454545454545, 25.640151515152,
221 25.878787878788, 26.806818181818, 27.522727272727, 27.814393939394,
222 27.94696969697, 28.0, 28.202898550725, 28.574879227053, 31.685990338164,
223 31.787439613527, 33.647342995169, 33.884057971014, 34.391304347826, 35.0,
224 36.704545454545, 36.818181818182, 37.727272727273, 41.420454545455,
225 42.954545454545, 46.136363636364, 47.386363636364, 51.25, 53.238636363636,
226 55.0, 64.249684741488, 64.703656998739, 65.044136191677, 65.895334174023,
227 75.769230769231, 79.457755359395, 82.919293820933, 84.451450189155,
228 93.417402269861, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
229 0.0, 0.92105263157895, 2.5328947368421, 3.4078947368421, 4.6973684210526,
230 5.3421052631579, 5.6644736842105, 7.0, 8.9339339339339, 9.6066066066066,
231 10.321321321321, 10.489489489489, 11.498498498498, 12.255255255255,
232 12.633633633634, 13.075075075075, 13.222222222222, 13.537537537538, 14.0,
233 14.65625, 15.3125, 16.65625, 17.59375, 17.71875, 17.9375, 18.75, 19.4375,
234 19.65625, 19.84375, 20.3125, 20.71875, 20.875, 20.9375, 21.0, 21.310483870968,
235 21.790322580645, 22.298387096774, 23.060483870968, 24.161290322581,
236 25.487903225806, 25.685483870968, 25.939516129032, 26.927419354839,
237 27.689516129032, 28.0, 28.143442622951, 28.200819672131, 28.372950819672,
238 28.688524590164, 31.327868852459, 31.41393442623, 32.991803278689,
239 33.19262295082, 33.622950819672, 34.139344262295, 35.0, 35.082474226804,
240 35.742268041237, 38.422680412371, 39.536082474227, 41.845360824742,
241 42.752577319588, 45.556701030928, 47.0, 48.278350515464, 55.0, 55.39603960396,
242 55.693069306931, 56.435643564356, 65.049504950495, 68.267326732673,
243 71.287128712871, 72.623762376238, 80.445544554455, 86.188118811881,
244 97.326732673267, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
245 1.2068965517241, 3.3189655172414, 4.4655172413793, 6.1551724137931, 7.0,
246 7.1412103746398, 7.7262247838617, 9.5821325648415, 10.227665706052,
247 10.913544668588, 11.07492795389, 12.043227665706, 12.769452449568,
248 13.132564841499, 13.556195965418, 13.697406340058, 14.0, 14.599221789883,
249 15.171206225681, 15.743190661479, 16.91439688716, 17.731517509728,
250 17.84046692607, 18.031128404669, 18.739299610895, 19.338521400778,
251 19.529182879377, 19.692607003891, 20.101167315175, 20.455252918288,
252 20.591439688716, 20.645914396887, 20.700389105058, 21.0, 21.526548672566,
253 22.08407079646, 22.920353982301, 24.128318584071, 25.58407079646,
254 25.800884955752, 26.079646017699, 27.163716814159, 28.0, 28.282051282051,
255 28.410256410256, 28.461538461538, 28.615384615385, 28.897435897436,
256 31.25641025641, 31.333333333333, 32.74358974359, 32.923076923077,
257 33.307692307692, 33.769230769231, 34.538461538462, 34.589743589744, 35.0,
258 36.768707482993, 37.503401360544, 39.027210884354, 39.625850340136,
259 41.47619047619, 42.428571428571, 43.272108843537, 47.707482993197,
260 47.925170068027, 48.08843537415, 48.496598639456, 53.231292517007, 55.0,
261 57.99672489083, 59.323144104803, 67.085152838428, 72.78384279476,
262 83.837336244541, 86.490174672489, 91.550218340611, 99.312227074236, 100.0,
263 100.0, 100.0, 100.0, 0.0, 1.8918918918919, 5.2027027027027, 7.0,
264 7.5340599455041, 7.8010899182561, 7.9346049046322, 8.4877384196185,
265 10.242506811989, 10.852861035422, 11.50136239782, 11.653950953678,
266 12.569482288828, 13.256130790191, 13.599455040872, 14.0, 14.185606060606,
267 14.583333333333, 15.166666666667, 15.723484848485, 16.280303030303,
268 17.420454545455, 18.215909090909, 18.32196969697, 18.507575757576,
269 19.19696969697, 19.780303030303, 19.965909090909, 20.125, 20.522727272727,
270 20.867424242424, 21.0, 21.065420560748, 21.130841121495, 21.490654205607,
271 22.046728971963, 22.635514018692, 23.518691588785, 24.794392523364,
272 26.331775700935, 26.560747663551, 26.855140186916, 28.0, 28.665492957746,
273 28.93661971831, 29.05985915493, 29.109154929577, 29.257042253521,
274 29.528169014085, 31.795774647887, 31.869718309859, 33.225352112676,
275 33.397887323944, 33.767605633803, 34.211267605634, 34.950704225352, 35.0,
276 35.381406436234, 36.930870083433, 37.574493444577, 38.909415971395,
277 39.433849821216, 41.054827175209, 41.88915375447, 42.628128724672,
278 46.513706793802, 46.704410011919, 46.847437425507, 47.205005959476,
279 51.352800953516, 52.902264600715, 54.356376638856, 55.0, 62.917594654788,
280 68.730512249443, 80.005567928731, 82.711581291759, 87.873051224944,
281 95.790645879733, 96.492204899777, 100.0, 100.0, 100.0, 0.0, 7.0,
282 7.8448275862069, 8.3034482758621, 8.9793103448276, 9.3172413793103,
283 9.4862068965517, 10.186206896552, 12.406896551724, 13.179310344828, 14.0,
284 14.157303370787, 15.101123595506, 15.808988764045, 16.162921348315,
285 16.575842696629, 16.713483146067, 17.008426966292, 17.441011235955,
286 17.85393258427, 18.266853932584, 19.112359550562, 19.702247191011,
287 19.780898876404, 19.918539325843, 20.429775280899, 20.862359550562, 21.0,
288 21.192660550459, 21.674311926606, 22.091743119266, 22.252293577982,
289 22.316513761468, 22.380733944954, 22.733944954128, 23.279816513761,
290 23.857798165138, 24.724770642202, 25.977064220183, 27.48623853211,
291 27.711009174312, 28.0, 28.910780669145, 29.613382899628, 29.899628252788,
292 30.029739776952, 30.081784386617, 30.237918215613, 30.524163568773,
293 32.918215613383, 32.996282527881, 34.42750929368, 34.609665427509, 35.0,
294 35.417633410673, 36.113689095128, 36.160092807425, 36.5313225058,
295 38.039443155452, 38.665893271462, 39.965197215777, 40.475638051044,
296 42.053364269142, 42.865429234339, 43.584686774942, 47.366589327146,
297 47.552204176334, 47.691415313225, 48.039443155452, 52.07656612529,
298 53.584686774942, 55.0, 56.296691568837, 63.884738527215, 69.455709711846,
299 80.261472785486, 82.854855923159, 87.801494130203, 95.389541088581,
300 96.061899679829, 99.423692636073, 100.0, 100.0, 0.0, 7.0, 9.378640776699,
301 10.669902912621, 12.572815533981, 13.52427184466, 14.0, 14.394941634241,
302 15.647859922179, 16.083657587549, 16.546692607004, 16.655642023346,
303 17.309338521401, 17.799610894942, 18.044747081712, 18.330739299611,
304 18.426070038911, 18.630350194553, 18.929961089494, 19.215953307393,
305 19.501945525292, 20.087548638132, 20.496108949416, 20.550583657588,
306 20.645914396887, 21.0, 21.836956521739, 22.103260869565, 22.33152173913,
307 22.902173913043, 23.396739130435, 23.586956521739, 23.663043478261,
308 23.739130434783, 24.157608695652, 24.804347826087, 25.489130434783,
309 26.516304347826, 28.0, 29.305555555556, 29.5, 29.75, 30.722222222222,
310 31.472222222222, 31.777777777778, 31.916666666667, 31.972222222222,
311 32.138888888889, 32.444444444444, 35.0, 35.073529411765, 36.421568627451,
312 36.593137254902, 36.960784313725, 37.401960784314, 38.137254901961,
313 38.186274509804, 38.578431372549, 40.171568627451, 40.833333333333,
314 42.205882352941, 42.745098039216, 44.411764705882, 45.269607843137,
315 46.029411764706, 50.024509803922, 50.220588235294, 50.367647058824,
316 50.735294117647, 55.0, 57.720930232558, 60.274418604651, 61.404651162791,
317 68.018604651163, 72.874418604651, 82.293023255814, 84.553488372093,
318 88.86511627907, 95.479069767442, 96.06511627907, 98.995348837209,
319 99.497674418605, 100.0, 0.0, 14.0, 14.419520547945, 14.647260273973,
320 14.982876712329, 15.150684931507, 15.234589041096, 15.582191780822,
321 16.684931506849, 17.068493150685, 17.47602739726, 17.571917808219,
322 18.147260273973, 18.578767123288, 18.794520547945, 19.046232876712,
323 19.130136986301, 19.309931506849, 19.573630136986, 19.825342465753,
324 20.077054794521, 20.592465753425, 20.952054794521, 21.0, 21.324503311258,
325 22.529801324503, 23.549668874172, 23.87417218543, 24.152317880795,
326 24.847682119205, 25.450331125828, 25.682119205298, 25.774834437086,
327 25.867549668874, 26.377483443709, 27.165562913907, 28.0, 28.913043478261,
328 30.231884057971, 31.821256038647, 32.057971014493, 32.36231884058,
329 33.545893719807, 34.458937198068, 34.830917874396, 35.0, 35.054200542005,
330 35.216802168022, 35.514905149051, 38.008130081301, 38.089430894309,
331 39.579945799458, 39.769647696477, 40.176151761518, 40.663956639566,
332 41.476964769648, 41.531165311653, 41.964769647696, 43.726287262873,
333 44.457994579946, 45.975609756098, 46.571815718157, 48.414634146341,
334 49.363143631436, 50.20325203252, 54.620596205962, 54.837398373984, 55.0,
335 55.583910034602, 62.357266435986, 64.887543252595, 67.262110726644,
336 68.313148788927, 74.463667820069, 78.979238754325, 87.737889273356,
337 89.839965397924, 93.849480968858, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 14.0,
338 14.708092485549, 15.092485549133, 15.658959537572, 15.942196531792,
339 16.083815028902, 16.670520231214, 18.531791907514, 19.179190751445,
340 19.867052023121, 20.028901734104, 21.0, 21.739002932551, 22.108504398827,
341 22.539589442815, 22.683284457478, 22.991202346041, 23.442815249267,
342 23.873900293255, 24.304985337243, 25.187683284457, 25.803519061584,
343 25.885630498534, 26.029325513196, 26.563049853372, 27.014662756598,
344 27.158357771261, 27.281524926686, 27.589442815249, 27.856304985337,
345 27.958944281525, 28.0, 28.083333333333, 28.541666666667, 29.25, 30.0, 31.125,
346 32.75, 34.708333333333, 35.0, 35.291734197731, 36.426256077796,
347 37.301458670989, 37.658022690438, 37.820097244733, 37.884927066451,
348 38.079416531605, 38.435980551053, 41.418152350081, 41.515397082658,
349 43.298217179903, 43.525121555916, 44.011345218801, 44.594813614263,
350 45.567260940032, 45.63209076175, 46.150729335494, 48.257698541329,
351 49.132901134522, 50.948136142626, 51.661264181523, 53.865478119935, 55.0,
352 56.15671641791, 62.238805970149, 62.537313432836, 62.761194029851,
353 63.320895522388, 69.813432835821, 72.238805970149, 74.514925373134,
354 75.522388059701, 81.417910447761, 85.746268656716, 94.141791044776,
355 96.15671641791, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 14.0,
356 16.987804878049, 18.609756097561, 21.0, 21.175942549372, 21.263913824057,
357 21.628366247756, 22.784560143627, 23.18671454219, 23.614003590664,
358 23.714542190305, 24.317773788151, 24.770197486535, 24.996409335727,
359 25.260323159785, 25.34829443447, 25.536804308797, 25.81328545781,
360 26.077199281867, 26.341113105925, 26.881508078995, 27.258527827648,
361 27.308797127469, 27.396768402154, 27.723518850987, 28.0, 28.39837398374,
362 28.739837398374, 29.593495934959, 30.333333333333, 30.617886178862,
363 30.731707317073, 30.845528455285, 31.471544715447, 32.439024390244,
364 33.463414634146, 35.0, 36.553784860558, 38.426294820717, 38.705179282869,
365 39.06374501992, 40.458167330677, 41.533864541833, 41.972111553785,
366 42.171314741036, 42.250996015936, 42.490039840637, 42.92828685259,
367 46.593625498008, 46.713147410359, 48.90438247012, 49.183266932271,
368 49.780876494024, 50.498007968127, 51.693227091633, 51.772908366534,
369 52.410358565737, 55.0, 55.966587112172, 57.971360381862, 58.758949880668,
370 61.193317422434, 62.44630071599, 63.556085918854, 69.391408114558,
371 69.677804295943, 69.892601431981, 70.429594272076, 76.658711217184,
372 78.985680190931, 81.169451073986, 82.136038186158, 87.792362768496,
373 91.945107398568, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
374 21.0, 21.414551607445, 21.639593908629, 21.971235194585, 22.137055837563,
375 22.219966159052, 22.56345177665, 23.653130287648, 24.032148900169,
376 24.434856175973, 24.529610829103, 25.098138747885, 25.524534686971,
377 25.737732656514, 25.986463620981, 26.06937394247, 26.24703891709,
378 26.507614213198, 26.756345177665, 27.005076142132, 27.514382402707,
379 27.869712351946, 27.917089678511, 28.0, 30.394736842105, 32.421052631579,
380 33.065789473684, 33.618421052632, 35.0, 35.668380462725, 35.925449871465,
381 36.028277634961, 36.131105398458, 36.696658097686, 37.570694087404,
382 38.496143958869, 39.884318766067, 41.889460154242, 44.305912596401,
383 44.665809768638, 45.12853470437, 46.928020565553, 48.316195372751,
384 48.881748071979, 49.13881748072, 49.241645244216, 49.550128534704,
385 50.115681233933, 54.845758354756, 55.0, 57.201957295374, 57.482206405694,
386 58.082740213523, 58.803380782918, 60.004448398577, 60.084519572954,
387 60.725088967972, 63.327402135231, 64.408362989324, 66.650355871886,
388 67.531138790036, 70.253558718861, 71.654804270463, 72.89590747331,
389 79.421708185053, 79.741992882562, 79.982206405694, 80.582740213523,
390 87.548932384342, 90.151245551601, 92.593416370107, 93.674377224199, 100.0,
391 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 21.0,
392 21.822147651007, 22.268456375839, 22.926174496644, 23.255033557047,
393 23.419463087248, 24.10067114094, 26.261744966443, 27.013422818792,
394 27.812080536913, 28.0, 29.191489361702, 30.085106382979, 30.531914893617,
395 31.053191489362, 31.22695035461, 31.599290780142, 32.145390070922,
396 32.666666666667, 33.187943262411, 34.255319148936, 35.0, 35.298507462687,
397 35.820895522388, 37.761194029851, 39.402985074627, 39.925373134328,
398 40.373134328358, 41.492537313433, 42.462686567164, 42.835820895522,
399 42.985074626866, 43.134328358209, 43.955223880597, 45.223880597015,
400 46.567164179104, 48.582089552239, 51.492537313433, 55.0, 55.381355932203,
401 55.871670702179, 57.778450363196, 59.249394673123, 59.848668280872,
402 60.121065375303, 60.230024213075, 60.556900726392, 61.15617433414,
403 66.168280871671, 66.331719128329, 69.32808716707, 69.709443099274,
404 70.526634382567, 71.507263922518, 73.141646489104, 73.250605326877,
405 74.122276029056, 77.663438256659, 79.134382566586, 82.185230024213,
406 83.383777239709, 87.088377723971, 88.995157384988, 90.68401937046,
407 99.56416464891, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
408 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 21.0, 28.0,
409 28.383285302594, 28.948126801153, 29.230547550432, 29.371757925072,
410 29.956772334294, 31.812680115274, 32.458213256484, 33.14409221902,
411 33.305475504323, 34.273775216138, 35.0, 36.333333333333, 37.888888888889,
412 38.407407407407, 39.518518518519, 41.148148148148, 42.703703703704,
413 44.259259259259, 47.444444444444, 49.666666666667, 49.962962962963,
414 50.481481481481, 52.407407407407, 54.037037037037, 54.555555555556, 55.0,
415 55.941422594142, 56.757322175732, 57.071129707113, 57.196652719665,
416 57.322175732218, 58.012552301255, 59.07949790795, 60.20920502092,
417 61.903765690377, 64.351464435146, 67.301255230126, 67.740585774059,
418 68.305439330544, 70.502092050209, 72.196652719665, 72.887029288703,
419 73.200836820084, 73.326359832636, 73.702928870293, 74.393305439331,
420 80.167364016736, 80.355648535565, 83.807531380753, 84.246861924686,
421 85.188284518828, 86.317991631799, 88.200836820084, 88.326359832636,
422 89.330543933054, 93.410041841004, 95.10460251046, 98.619246861925, 100.0,
423 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
424 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
425 28.0, 28.95703125, 29.4765625, 30.2421875, 30.625, 30.81640625, 31.609375,
426 34.125, 35.0, 37.098765432099, 37.592592592593, 40.555555555556,
427 42.777777777778, 43.888888888889, 45.185185185185, 45.617283950617,
428 46.543209876543, 47.901234567901, 49.197530864198, 50.493827160494,
429 53.148148148148, 55.0, 55.234680573664, 55.645371577575, 57.170795306389,
430 58.461538461538, 58.87222946545, 59.224250325945, 60.104302477184,
431 60.867014341591, 61.16036505867, 61.277705345502, 61.395045632334,
432 62.040417209909, 63.037809647979, 64.093872229465, 65.677966101695,
433 67.966101694915, 70.723598435463, 71.134289439374, 71.662320730117,
434 73.715775749674, 75.299869621904, 75.945241199478, 76.238591916558,
435 76.35593220339, 76.707953063885, 77.35332464146, 82.750977835724,
436 82.926988265971, 86.153846153846, 86.564537157757, 87.444589308996,
437 88.500651890482, 90.26075619296, 90.378096479791, 91.316818774446,
438 95.13037809648, 96.714471968709, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
439 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
440 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
441 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
442 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
443 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
444 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
445 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
446 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
447 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
448 100.0 } ; /* Variable: APTC_TRQ_PED_INV_MAP_PED_POS_MPV
449 * Referenced by: '<S85>/2D_Lookup_Table'
450 */
451
452real_T APTC_TRQ_PED_INV_MAP_TRQ_STEPS[83] = { 0.0, 20.0, 55.0, 74.0, 102.0,
453 116.0, 123.0, 152.0, 244.0, 276.0, 310.0, 318.0, 366.0, 402.0, 420.0, 441.0,
454 448.0, 463.0, 485.0, 506.0, 527.0, 570.0, 600.0, 604.0, 611.0, 637.0, 659.0,
455 666.0, 672.0, 687.0, 700.0, 705.0, 707.0, 709.0, 720.0, 737.0, 755.0, 782.0,
456 821.0, 868.0, 875.0, 884.0, 919.0, 946.0, 957.0, 962.0, 964.0, 970.0, 981.0,
457 1073.0, 1076.0, 1131.0, 1138.0, 1153.0, 1171.0, 1201.0, 1203.0, 1219.0, 1284.0,
458 1311.0, 1367.0, 1389.0, 1457.0, 1492.0, 1523.0, 1686.0, 1694.0, 1700.0, 1715.0,
459 1889.0, 1954.0, 2015.0, 2042.0, 2200.0, 2316.0, 2541.0, 2595.0, 2698.0, 2856.0,
460 2870.0, 2940.0, 2952.0, 2964.0 } ; /* Variable: APTC_TRQ_PED_INV_MAP_TRQ_STEPS
461 * Referenced by: '<S85>/2D_Lookup_Table'
462 */
463
464real_T APTC_TRQ_PED_TRQ_DATA_MPV[128] = { 0.0, 448.0, 570.0, 737.0, 981.0,
465 1138.0, 1311.0, 1457.0, 0.0, 420.0, 527.0, 720.0, 970.0, 1131.0, 1311.0,
466 1715.0, 0.0, 244.0, 506.0, 700.0, 964.0, 1171.0, 1523.0, 2316.0, 0.0, 152.0,
467 485.0, 709.0, 957.0, 1201.0, 1686.0, 2595.0, 0.0, 116.0, 463.0, 720.0, 946.0,
468 1219.0, 1954.0, 2870.0, 0.0, 74.0, 441.0, 705.0, 919.0, 1203.0, 2042.0, 2940.0,
469 0.0, 20.0, 310.0, 666.0, 884.0, 1153.0, 2015.0, 2952.0, 0.0, 20.0, 123.0,
470 637.0, 821.0, 1073.0, 1889.0, 2964.0, 0.0, 20.0, 20.0, 604.0, 755.0, 962.0,
471 1700.0, 2856.0, 0.0, 20.0, 20.0, 366.0, 707.0, 875.0, 1492.0, 2698.0, 0.0,
472 20.0, 20.0, 102.0, 659.0, 782.0, 1284.0, 2541.0, 0.0, 20.0, 20.0, 20.0, 611.0,
473 687.0, 1076.0, 2200.0, 0.0, 20.0, 20.0, 20.0, 318.0, 600.0, 868.0, 1694.0, 0.0,
474 20.0, 20.0, 20.0, 55.0, 402.0, 672.0, 1389.0, 0.0, 20.0, 20.0, 20.0, 20.0,
475 276.0, 600.0, 1367.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: APTC_TRQ_PED_TRQ_DATA_MPV
476 * Referenced by: '<S83>/2-D Lookup Table'
477 */
478
479real_T APTC_TRQ_PED_TRQ_ESPD_STEP_MPV[16] = { 500.0, 650.0, 885.0, 950.0, 1050.0,
480 1120.0, 1240.0, 1360.0, 1475.0, 1590.0, 1710.0, 1830.0, 1950.0, 2150.0, 2300.0,
481 2350.0 } ; /* Variable: APTC_TRQ_PED_TRQ_ESPD_STEP_MPV
482 * Referenced by:
483 * '<S83>/2-D Lookup Table'
484 * '<S85>/2D_Lookup_Table'
485 */
486
487real_T APTC_TRQ_PED_TRQ_POS_STEP_MPV[8] = { 0.0, 7.0, 14.0, 21.0, 28.0, 35.0,
488 55.0, 100.0 } ; /* Variable: APTC_TRQ_PED_TRQ_POS_STEP_MPV
489 * Referenced by: '<S83>/2-D Lookup Table'
490 */
491
492real_T BRK_DEM_KD_DATA_MPV[8] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: BRK_DEM_KD_DATA_MPV
493 * Referenced by: '<S151>/1D_Lookup_Table'
494 */
495
496real_T BRK_DEM_KI_DATA_MPV[8] = { -1.5, -1.5, -1.5, -1.5, -1.5, -1.5, -1.5, -1.5
497} ; /* Variable: BRK_DEM_KI_DATA_MPV
498 * Referenced by: '<S150>/1D_Lookup_Table'
499 */
500
501real_T BRK_DEM_KP_DATA_MPV[8] = { -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0
502} ; /* Variable: BRK_DEM_KP_DATA_MPV
503 * Referenced by: '<S149>/1D_Lookup_Table'
504 */
505
506real_T BRK_DEM_MASS_STEP_MPV[8] = { 0.0, 5000.0, 10000.0, 20000.0, 30000.0,
507 40000.0, 50000.0, 54000.0 } ; /* Variable: BRK_DEM_MASS_STEP_MPV
508 * Referenced by:
509 * '<S149>/1D_Lookup_Table'
510 * '<S150>/1D_Lookup_Table'
511 * '<S151>/1D_Lookup_Table'
512 */
513
514real_T BRK_GOV_FF_DECEL_RATE_DATA_MPV[32] = { 0.0, -0.39, -1.76, -3.13, -4.5,
515 -5.87, -7.24, -8.61, -9.98, -11.35, -12.72, -14.09, -15.46, -16.83, -18.2,
516 -19.57, 0.0, -0.12, -0.53, -0.94, -1.35, -1.76, -2.17, -2.58, -2.99, -3.41,
517 -3.82, -4.23, -4.64, -5.05, -5.46, -5.87 } ;/* Variable: BRK_GOV_FF_DECEL_RATE_DATA_MPV
518 * Referenced by: '<S201>/2D_Lookup_Table'
519 */
520
521real_T BRK_GOV_FF_DECEL_RATE_STEP_MPV[16] = { -19.57, -18.2, -16.83, -15.46,
522 -14.09, -12.72, -11.35, -9.98, -8.61, -7.24, -5.87, -4.5, -3.13, -1.76, -0.39,
523 0.0 } ; /* Variable: BRK_GOV_FF_DECEL_RATE_STEP_MPV
524 * Referenced by:
525 * '<S202>/2D_Lookup_Table'
526 * '<S203>/2D_Lookup_Table'
527 */
528
529real_T BRK_GOV_FF_MASS_STEP_MPV[2] = { 9035.0, 36287.0 } ;/* Variable: BRK_GOV_FF_MASS_STEP_MPV
530 * Referenced by:
531 * '<S201>/2D_Lookup_Table'
532 * '<S202>/2D_Lookup_Table'
533 * '<S203>/2D_Lookup_Table'
534 */
535
536real_T BRK_GOV_FF_PRESS_KPA_DATA_MPV[32] = { 1034.0, 965.0, 896.0, 827.0, 758.0,
537 689.0, 621.0, 552.0, 483.0, 414.0, 345.0, 276.0, 207.0, 138.0, 69.0, 0.0,
538 2585.0, 2413.0, 2240.0, 2068.0, 1895.0, 1723.0, 1553.0, 1380.0, 1208.0, 1035.0,
539 863.0, 690.0, 518.0, 345.0, 173.0, 0.0 } ;/* Variable: BRK_GOV_FF_PRESS_KPA_DATA_MPV
540 * Referenced by:
541 * '<S202>/2D_Lookup_Table'
542 * '<S203>/2D_Lookup_Table'
543 */
544
545real_T BRK_GOV_FF_PRESS_KPA_STEP_MPV[16] = { 0.0, 69.0, 138.0, 207.0, 276.0,
546 345.0, 414.0, 483.0, 552.0, 621.0, 689.0, 758.0, 827.0, 896.0, 965.0, 1034.0 }
547; /* Variable: BRK_GOV_FF_PRESS_KPA_STEP_MPV
548 * Referenced by: '<S201>/2D_Lookup_Table'
549 */
550
551real_T Curvature_FF_Gain = 5.7; /* Variable: Curvature_FF_Gain
552 * Referenced by: '<S283>/FeedforwardGain'
553 */
554real_T DISTANCE_M = 200.0; /* Variable: DISTANCE_M
555 * Referenced by: '<S81>/DISTANCE_M'
556 */
557real_T Lateral_Control_Curvature_Limit = 0.5;/* Variable: Lateral_Control_Curvature_Limit
558 * Referenced by:
559 * '<S283>/Constant3'
560 * '<S283>/Constant5'
561 */
562real_T Lateral_Control_D = 0.1; /* Variable: Lateral_Control_D
563 * Referenced by: '<S309>/Derivative Gain'
564 */
565real_T Lateral_Control_Error_Limit = 0.1;/* Variable: Lateral_Control_Error_Limit
566 * Referenced by:
567 * '<S283>/Constant'
568 * '<S283>/Constant1'
569 */
570real_T Lateral_Control_Error_Rate_Limit = 0.05;/* Variable: Lateral_Control_Error_Rate_Limit
571 * Referenced by:
572 * '<S283>/Constant10'
573 * '<S283>/Constant7'
574 * '<S283>/Constant8'
575 * '<S283>/Constant9'
576 */
577real_T Lateral_Control_I = 0.0; /* Variable: Lateral_Control_I
578 * Referenced by: '<S309>/Integral Gain'
579 */
580real_T Lateral_Control_P = 0.5; /* Variable: Lateral_Control_P
581 * Referenced by:
582 * '<S283>/PGain'
583 * '<S309>/Proportional Gain'
584 */
585real_T Lateral_Control_Pole = 0.98; /* Variable: Lateral_Control_Pole
586 * Referenced by: '<S313>/GainPole'
587 */
588real_T Lateral_Control_Rate_Limit_APV = 0.05;/* Variable: Lateral_Control_Rate_Limit_APV
589 * Referenced by: '<S312>/Constant'
590 */
591real_T Lateral_Control_YawRate_Limit = 1.0;/* Variable: Lateral_Control_YawRate_Limit
592 * Referenced by:
593 * '<S283>/Constant2'
594 * '<S283>/Constant4'
595 */
596real_T Lateral_Control_Zero = 0.99; /* Variable: Lateral_Control_Zero
597 * Referenced by: '<S313>/GainZero'
598 */
599real_T PROPB_REAX_1_E4_DESIRED_POSITION_APV = 0.0;/* Variable: PROPB_REAX_1_E4_DESIRED_POSITION_APV
600 * Referenced by: '<S996>/Constant7'
601 */
602real_T REAX_OFFSET_APV = 0.0; /* Variable: REAX_OFFSET_APV
603 * Referenced by:
604 * '<S80>/Constant'
605 * '<S282>/ReAX Offset'
606 * '<S283>/Constant6'
607 */
608real_T STANLEY_GAIN_APV = 0.05; /* Variable: STANLEY_GAIN_APV
609 * Referenced by: '<S282>/StanleySteeringControlGain'
610 */
611real_T STEERCTRL_WHEEL_ANGLE_DATA_MPV[72] = { -800.02001953125, -780.02899169922,
612 -760.03399658203, -740.0, -720.0, -700.00402832031, -680.0, -660.01397705078,
613 -640.01898193359, -620.02398681641, -600.02001953125, -580.03399658203,
614 -560.03900146484, -540.0, -520.00402832031, -500.00900268555, -480.01400756836,
615 -460.01901245117, -440.02398681641, -420.01998901367, -400.03399658203,
616 -380.03900146484, -360.0, -340.00399780273, -320.00900268555, -300.01400756836,
617 -280.01901245117, -260.02398681641, -240.02900695801, -220.03399658203,
618 -200.03900146484, -180.0, -160.00399780273, -140.00900268555, -120.01399993896,
619 -100.01899719238, -80.024002075195, -60.028999328613, -40.034000396729,
620 0.52700001001358, 29.969999313354, 50.00899887085, 69.959999084473,
621 89.949996948242, 109.99500274658, 129.99000549316, 149.98500061035,
622 170.0240020752, 189.97500610352, 209.9700012207, 229.96499633789,
623 249.96000671387, 270.0, 289.99499511719, 309.98999023438, 329.98498535156,
624 349.98001098633, 369.97500610352, 390.01400756836, 410.00900268555, 450.0,
625 470.0299987793, 489.98999023438, 509.98498535156, 529.97998046875,
626 549.97497558594, 569.96997070313, 589.96502685547, 610.21997070313, 630.0,
627 650.25, 670.0 } ; /* Variable: STEERCTRL_WHEEL_ANGLE_DATA_MPV
628 * Referenced by: '<S278>/1D_Lookup_Table'
629 */
630
631real_T STEERCTRL_WHEEL_ANGLE_STEP_MPV[72] = { -46.0, -44.5, -43.0, -42.0, -40.0,
632 -39.0, -37.5, -36.5, -35.0, -34.0, -33.0, -31.5, -30.5, -29.0, -28.0, -26.5,
633 -25.5, -24.5, -23.5, -22.0, -21.0, -20.0, -19.0, -17.5, -16.5, -15.5, -14.0,
634 -13.0, -12.0, -11.0, -10.0, -8.5, -7.5, -6.5, -5.0, -4.0, -3.0, -2.0, -1.0,
635 0.0, 1.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0,
636 15.0, 16.0, 17.0, 18.5, 19.5, 20.5, 21.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5,
637 29.0, 30.0, 31.0, 31.5, 32.5, 33.0 } ;/* Variable: STEERCTRL_WHEEL_ANGLE_STEP_MPV
638 * Referenced by: '<S278>/1D_Lookup_Table'
639 */
640
641real_T TQ_DEM_GEAR_RATIO_STEP_MPV[8] = { 0.0, 0.2, 4.0, 8.0, 10.0, 16.0, 18.0,
642 20.0 } ; /* Variable: TQ_DEM_GEAR_RATIO_STEP_MPV
643 * Referenced by:
644 * '<S243>/2D_Lookup_Table'
645 * '<S244>/2D_Lookup_Table'
646 * '<S245>/2D_Lookup_Table'
647 */
648
649real_T TQ_DEM_KD_DATA_MPV[64] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
650 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
651 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
652 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
653 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: TQ_DEM_KD_DATA_MPV
654 * Referenced by: '<S245>/2D_Lookup_Table'
655 */
656
657real_T TQ_DEM_KI_DATA_MPV[64] = { 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
658 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
659 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
660 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
661 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7 } ;/* Variable: TQ_DEM_KI_DATA_MPV
662 * Referenced by: '<S244>/2D_Lookup_Table'
663 */
664
665real_T TQ_DEM_KP_DATA_MPV[64] = { 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
666 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
667 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
668 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
669 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0 } ;/* Variable: TQ_DEM_KP_DATA_MPV
670 * Referenced by: '<S243>/2D_Lookup_Table'
671 */
672
673real_T TQ_DEM_MASS_STEP_MPV[8] = { 0.0, 5000.0, 10000.0, 20000.0, 30000.0,
674 40000.0, 50000.0, 54000.0 } ; /* Variable: TQ_DEM_MASS_STEP_MPV
675 * Referenced by:
676 * '<S243>/2D_Lookup_Table'
677 * '<S244>/2D_Lookup_Table'
678 * '<S245>/2D_Lookup_Table'
679 */
680
681real_T UndersteerCorection = 0.5; /* Variable: UndersteerCorection
682 * Referenced by: '<S283>/UndersteerCorrection'
683 */
684real_T VSPD_TARGET_KPH_APV = 0.0; /* Variable: VSPD_TARGET_KPH_APV
685 * Referenced by: '<S81>/VSPD_TARGET_KPH_APV'
686 */
687real_T YAW_RATE_OFFSET_APV = -0.0066; /* Variable: YAW_RATE_OFFSET_APV
688 * Referenced by: '<S283>/YAW_RATE_OFFSET_APV'
689 */
690real_T Yaw_Rate_FF_Gain = 0.1; /* Variable: Yaw_Rate_FF_Gain
691 * Referenced by: '<S283>/RateFeedbackGain'
692 */
693ENUM_AUTONOMOUS_MODE_T AUTONOMOUS_MODE_SELECTOR_APV =
694 ENUM_AUTONOMOUS_MODE_T_AUTO; /* Variable: AUTONOMOUS_MODE_SELECTOR_APV
695 * Referenced by: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
696 */
697ENUM_CAN_RX_T CANR_PROPB_XPR_1_50_CHANNEL_APV = ENUM_CAN_RX_T_RX_CAN_3;/* Variable: CANR_PROPB_XPR_1_50_CHANNEL_APV
698 * Referenced by: '<S448>/Constant'
699 */
700ENUM_CAN_RX_T PROPB_REAX_CHANNEL_APV = ENUM_CAN_RX_T_RX_CAN_2;/* Variable: PROPB_REAX_CHANNEL_APV
701 * Referenced by:
702 * '<S446>/Constant'
703 * '<S447>/Constant'
704 * '<S468>/Constant3'
705 */
706ENUM_LAT_STEER_SOURCE_T LAT_STEER_SRC_SELECTOR_APV =
707 ENUM_LAT_STEER_SOURCE_T_PIC_HARIS; /* Variable: LAT_STEER_SRC_SELECTOR_APV
708 * Referenced by: '<S80>/LAT_STEER_SRC_SELECTOR_APV'
709 */
710ENUM_LONG_SPEED_DEMAND_SOURCE_T LONG_SPEED_SRC_SELECTOR_APV =
711 ENUM_LONG_SPEED_DEMAND_SOURCE_T_WAYPOINTS;/* Variable: LONG_SPEED_SRC_SELECTOR_APV
712 * Referenced by:
713 * '<S80>/LONG_SPEED_SRC_SELECTOR_APV'
714 * '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
715 */
716ENUM_REAX_OPERATION_MODE_T PROPB_REAX_1_E4_DESIRED_OPMODE_APV =
717 ENUM_REAX_OPERATION_MODE_T_POSITION_CTRL_MODE;/* Variable: PROPB_REAX_1_E4_DESIRED_OPMODE_APV
718 * Referenced by: '<S979>/Constant6'
719 */
720ENUM_STEERING_POS_SIGNAL_SOURCE_T PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV =
721 ENUM_STEERING_POS_SIGNAL_SOURCE_T_ESTIMATION;/* Variable: PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV
722 * Referenced by: '<S996>/Constant1'
723 */
724ENUM_SWITCH_T RATE_LIMITER_ENABLE_APV = ENUM_SWITCH_T_ON;/* Variable: RATE_LIMITER_ENABLE_APV
725 * Referenced by: '<S312>/RATE_LIMITER_ENABLE_APV'
726 */
727
728/* Block signals (default storage) */
729B_L4_MABX_T L4_MABX_B;
730
731/* Block states (default storage) */
732DW_L4_MABX_T L4_MABX_DW;
733
734/* Previous zero-crossings (trigger) states */
735PrevZCX_L4_MABX_T L4_MABX_PrevZCX;
736
737/* Real-time model */
738RT_MODEL_L4_MABX_T L4_MABX_M_;
739RT_MODEL_L4_MABX_T *const L4_MABX_M = &L4_MABX_M_;
740
741/* Forward declaration for local functions */
742static int32_T safe_cast_to_ENUM_XPR_CONTROL_M(int32_T input);
743static int32_T safe_cast_to_ENUM_XPR_ERROR_STA(int32_T input);
744static void L4_MABX_enter_atomic_INITIAL(void);
745static void L4_MABX_Calculate_abc(void);
746static void L4_MABX_CalculateAlternate_abc(void);
747static void L4_MABX_CalculateAcceleration34(void);
748static int32_T safe_cast_to_ENUM_CAN_STATUS_DI(int32_T input);
749
750/* Lookup Binary Search Utility BINARYSEARCH_real_T */
751void BINARYSEARCH_real_T(uint32_T *piLeft, uint32_T *piRght, real_T u, const
752 real_T *pData, uint32_T iHi)
753{
754 /* Find the location of current input value in the data table. */
755 *piLeft = 0U;
756 *piRght = iHi;
757 if (u <= pData[0] ) {
758 /* Less than or equal to the smallest point in the table. */
759 *piRght = 0U;
760 } else if (u >= pData[iHi] ) {
761 /* Greater than or equal to the largest point in the table. */
762 *piLeft = iHi;
763 } else {
764 uint32_T i;
765
766 /* Do a binary search. */
767 while (( *piRght - *piLeft ) > 1U ) {
768 /* Get the average of the left and right indices using to Floor rounding. */
769 i = (*piLeft + *piRght) >> 1;
770
771 /* Move either the right index or the left index so that */
772 /* LeftDataPoint <= CurrentValue < RightDataPoint */
773 if (u < pData[i] ) {
774 *piRght = i;
775 } else {
776 *piLeft = i;
777 }
778 }
779 }
780}
781
782/* Lookup Utility LookUp_real_T_real_T */
783void LookUp_real_T_real_T(real_T *pY, const real_T *pYData, real_T u, const
784 real_T *pUData, uint32_T iHi)
785{
786 uint32_T iLeft;
787 uint32_T iRght;
788 BINARYSEARCH_real_T( &(iLeft), &(iRght), u, pUData, iHi);
789
790 {
791 real_T lambda;
792 if (pUData[iRght] > pUData[iLeft] ) {
793 real_T num;
794 real_T den;
795 den = pUData[iRght];
796 den -= pUData[iLeft];
797 num = u;
798 num -= pUData[iLeft];
799 lambda = num / den;
800 } else {
801 lambda = 0.0;
802 }
803
804 {
805 real_T yLeftCast;
806 real_T yRghtCast;
807 yLeftCast = pYData[iLeft];
808 yRghtCast = pYData[iRght];
809 yLeftCast += lambda * ( yRghtCast - yLeftCast );
810 (*pY) = yLeftCast;
811 }
812 }
813}
814
815real_T look1_binlcapw(real_T u0, const real_T bp0[], const real_T table[],
816 uint32_T maxIndex)
817{
818 real_T y;
819 real_T frac;
820 uint32_T iRght;
821 uint32_T iLeft;
822 uint32_T bpIdx;
823
824 /* Lookup 1-D
825 Search method: 'binary'
826 Use previous index: 'off'
827 Interpolation method: 'Linear point-slope'
828 Extrapolation method: 'Clip'
829 Use last breakpoint for index at or above upper limit: 'on'
830 Remove protection against out-of-range input in generated code: 'off'
831 */
832 /* Prelookup - Index and Fraction
833 Index Search method: 'binary'
834 Extrapolation method: 'Clip'
835 Use previous index: 'off'
836 Use last breakpoint for index at or above upper limit: 'on'
837 Remove protection against out-of-range input in generated code: 'off'
838 */
839 if (u0 <= bp0[0U]) {
840 iLeft = 0U;
841 frac = 0.0;
842 } else if (u0 < bp0[maxIndex]) {
843 /* Binary Search */
844 bpIdx = maxIndex >> 1U;
845 iLeft = 0U;
846 iRght = maxIndex;
847 while (iRght - iLeft > 1U) {
848 if (u0 < bp0[bpIdx]) {
849 iRght = bpIdx;
850 } else {
851 iLeft = bpIdx;
852 }
853
854 bpIdx = (iRght + iLeft) >> 1U;
855 }
856
857 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
858 } else {
859 iLeft = maxIndex;
860 frac = 0.0;
861 }
862
863 /* Interpolation 1-D
864 Interpolation method: 'Linear point-slope'
865 Use last breakpoint for index at or above upper limit: 'on'
866 Overflow mode: 'portable wrapping'
867 */
868 if (iLeft == maxIndex) {
869 y = table[iLeft];
870 } else {
871 y = (table[iLeft + 1U] - table[iLeft]) * frac + table[iLeft];
872 }
873
874 return y;
875}
876
877real_T look2_binlcapw(real_T u0, real_T u1, const real_T bp0[], const real_T
878 bp1[], const real_T table[], const uint32_T maxIndex[],
879 uint32_T stride)
880{
881 real_T y;
882 real_T frac;
883 uint32_T bpIndices[2];
884 real_T fractions[2];
885 real_T yR_1d;
886 uint32_T iRght;
887 uint32_T bpIdx;
888 uint32_T iLeft;
889
890 /* Lookup 2-D
891 Search method: 'binary'
892 Use previous index: 'off'
893 Interpolation method: 'Linear point-slope'
894 Extrapolation method: 'Clip'
895 Use last breakpoint for index at or above upper limit: 'on'
896 Remove protection against out-of-range input in generated code: 'off'
897 */
898 /* Prelookup - Index and Fraction
899 Index Search method: 'binary'
900 Extrapolation method: 'Clip'
901 Use previous index: 'off'
902 Use last breakpoint for index at or above upper limit: 'on'
903 Remove protection against out-of-range input in generated code: 'off'
904 */
905 if (u0 <= bp0[0U]) {
906 iLeft = 0U;
907 frac = 0.0;
908 } else if (u0 < bp0[maxIndex[0U]]) {
909 /* Binary Search */
910 bpIdx = maxIndex[0U] >> 1U;
911 iLeft = 0U;
912 iRght = maxIndex[0U];
913 while (iRght - iLeft > 1U) {
914 if (u0 < bp0[bpIdx]) {
915 iRght = bpIdx;
916 } else {
917 iLeft = bpIdx;
918 }
919
920 bpIdx = (iRght + iLeft) >> 1U;
921 }
922
923 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
924 } else {
925 iLeft = maxIndex[0U];
926 frac = 0.0;
927 }
928
929 fractions[0U] = frac;
930 bpIndices[0U] = iLeft;
931
932 /* Prelookup - Index and Fraction
933 Index Search method: 'binary'
934 Extrapolation method: 'Clip'
935 Use previous index: 'off'
936 Use last breakpoint for index at or above upper limit: 'on'
937 Remove protection against out-of-range input in generated code: 'off'
938 */
939 if (u1 <= bp1[0U]) {
940 iLeft = 0U;
941 frac = 0.0;
942 } else if (u1 < bp1[maxIndex[1U]]) {
943 /* Binary Search */
944 bpIdx = maxIndex[1U] >> 1U;
945 iLeft = 0U;
946 iRght = maxIndex[1U];
947 while (iRght - iLeft > 1U) {
948 if (u1 < bp1[bpIdx]) {
949 iRght = bpIdx;
950 } else {
951 iLeft = bpIdx;
952 }
953
954 bpIdx = (iRght + iLeft) >> 1U;
955 }
956
957 frac = (u1 - bp1[iLeft]) / (bp1[iLeft + 1U] - bp1[iLeft]);
958 } else {
959 iLeft = maxIndex[1U];
960 frac = 0.0;
961 }
962
963 /* Interpolation 2-D
964 Interpolation method: 'Linear point-slope'
965 Use last breakpoint for index at or above upper limit: 'on'
966 Overflow mode: 'portable wrapping'
967 */
968 bpIdx = iLeft * stride + bpIndices[0U];
969 if (bpIndices[0U] == maxIndex[0U]) {
970 y = table[bpIdx];
971 } else {
972 y = (table[bpIdx + 1U] - table[bpIdx]) * fractions[0U] + table[bpIdx];
973 }
974
975 if (iLeft == maxIndex[1U]) {
976 } else {
977 bpIdx += stride;
978 if (bpIndices[0U] == maxIndex[0U]) {
979 yR_1d = table[bpIdx];
980 } else {
981 yR_1d = (table[bpIdx + 1U] - table[bpIdx]) * fractions[0U] + table[bpIdx];
982 }
983
984 y += (yR_1d - y) * frac;
985 }
986
987 return y;
988}
989
990real_T look1_binlxpw(real_T u0, const real_T bp0[], const real_T table[],
991 uint32_T maxIndex)
992{
993 real_T frac;
994 uint32_T iRght;
995 uint32_T iLeft;
996 uint32_T bpIdx;
997
998 /* Lookup 1-D
999 Search method: 'binary'
1000 Use previous index: 'off'
1001 Interpolation method: 'Linear point-slope'
1002 Extrapolation method: 'Linear'
1003 Use last breakpoint for index at or above upper limit: 'off'
1004 Remove protection against out-of-range input in generated code: 'off'
1005 */
1006 /* Prelookup - Index and Fraction
1007 Index Search method: 'binary'
1008 Extrapolation method: 'Linear'
1009 Use previous index: 'off'
1010 Use last breakpoint for index at or above upper limit: 'off'
1011 Remove protection against out-of-range input in generated code: 'off'
1012 */
1013 if (u0 <= bp0[0U]) {
1014 iLeft = 0U;
1015 frac = (u0 - bp0[0U]) / (bp0[1U] - bp0[0U]);
1016 } else if (u0 < bp0[maxIndex]) {
1017 /* Binary Search */
1018 bpIdx = maxIndex >> 1U;
1019 iLeft = 0U;
1020 iRght = maxIndex;
1021 while (iRght - iLeft > 1U) {
1022 if (u0 < bp0[bpIdx]) {
1023 iRght = bpIdx;
1024 } else {
1025 iLeft = bpIdx;
1026 }
1027
1028 bpIdx = (iRght + iLeft) >> 1U;
1029 }
1030
1031 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
1032 } else {
1033 iLeft = maxIndex - 1U;
1034 frac = (u0 - bp0[maxIndex - 1U]) / (bp0[maxIndex] - bp0[maxIndex - 1U]);
1035 }
1036
1037 /* Interpolation 1-D
1038 Interpolation method: 'Linear point-slope'
1039 Use last breakpoint for index at or above upper limit: 'off'
1040 Overflow mode: 'portable wrapping'
1041 */
1042 return (table[iLeft + 1U] - table[iLeft]) * frac + table[iLeft];
1043}
1044
1045/*
1046 * Output and update for atomic system:
1047 * '<S82>/If_Then_Else'
1048 * '<S83>/If_Then_Else'
1049 * '<S83>/If_Then_Else1'
1050 * '<S89>/If_Then_Else'
1051 * '<S89>/If_Then_Else1'
1052 * '<S90>/If_Then_Else'
1053 * '<S90>/If_Then_Else1'
1054 * '<S123>/If_Then_Else'
1055 * '<S126>/If_Then_Else'
1056 * '<S128>/If_Then_Else'
1057 * ...
1058 */
1059void L4_MABX_If_Then_Else(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1060 B_If_Then_Else_L4_MABX_T *localB)
1061{
1062 /* Switch: '<S86>/Switch' */
1063 if (rtu_If) {
1064 localB->Switch = rtu_Then;
1065 } else {
1066 localB->Switch = rtu_Else;
1067 }
1068
1069 /* End of Switch: '<S86>/Switch' */
1070}
1071
1072/*
1073 * System initialize for enable system:
1074 * '<S114>/Calculate_D_term'
1075 * '<S152>/Calculate_D_term'
1076 * '<S246>/Calculate_D_term'
1077 */
1078void L4_MA_Calculate_D_term_Init(B_Calculate_D_term_L4_MABX_T *localB,
1079 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1080{
1081 /* InitializeConditions for UnitDelay: '<S123>/Unit_Delay1' */
1082 localDW->Unit_Delay1_DSTATE = localP->Unit_Delay1_InitialCondition;
1083
1084 /* InitializeConditions for UnitDelay: '<S123>/Unit_Delay2' */
1085 localDW->Unit_Delay2_DSTATE = localP->Unit_Delay2_InitialCondition;
1086
1087 /* InitializeConditions for UnitDelay: '<S124>/FixPt Unit Delay2' */
1088 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1089
1090 /* InitializeConditions for UnitDelay: '<S124>/FixPt Unit Delay1' */
1091 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1092
1093 /* SystemInitialize for Outport: '<S118>/GPID_d_term' */
1094 localB->Subtract = localP->GPID_d_term_Y0;
1095}
1096
1097/*
1098 * System reset for enable system:
1099 * '<S114>/Calculate_D_term'
1100 * '<S152>/Calculate_D_term'
1101 * '<S246>/Calculate_D_term'
1102 */
1103void L4_M_Calculate_D_term_Reset(DW_Calculate_D_term_L4_MABX_T *localDW,
1104 P_Calculate_D_term_L4_MABX_T *localP)
1105{
1106 /* InitializeConditions for UnitDelay: '<S123>/Unit_Delay1' */
1107 localDW->Unit_Delay1_DSTATE = localP->Unit_Delay1_InitialCondition;
1108
1109 /* InitializeConditions for UnitDelay: '<S123>/Unit_Delay2' */
1110 localDW->Unit_Delay2_DSTATE = localP->Unit_Delay2_InitialCondition;
1111
1112 /* InitializeConditions for UnitDelay: '<S124>/FixPt Unit Delay2' */
1113 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1114
1115 /* InitializeConditions for UnitDelay: '<S124>/FixPt Unit Delay1' */
1116 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1117}
1118
1119/*
1120 * Disable for enable system:
1121 * '<S114>/Calculate_D_term'
1122 * '<S152>/Calculate_D_term'
1123 * '<S246>/Calculate_D_term'
1124 */
1125void L4_Calculate_D_term_Disable(B_Calculate_D_term_L4_MABX_T *localB,
1126 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1127{
1128 /* Disable for Outport: '<S118>/GPID_d_term' */
1129 localB->Subtract = localP->GPID_d_term_Y0;
1130 localDW->Calculate_D_term_MODE = false;
1131}
1132
1133/*
1134 * Start for enable system:
1135 * '<S114>/Calculate_D_term'
1136 * '<S152>/Calculate_D_term'
1137 * '<S246>/Calculate_D_term'
1138 */
1139void L4_M_Calculate_D_term_Start(DW_Calculate_D_term_L4_MABX_T *localDW)
1140{
1141 localDW->Calculate_D_term_MODE = false;
1142}
1143
1144/*
1145 * Outputs for enable system:
1146 * '<S114>/Calculate_D_term'
1147 * '<S152>/Calculate_D_term'
1148 * '<S246>/Calculate_D_term'
1149 */
1150void L4_MABX_Calculate_D_term(boolean_T rtu_Enable, real_T rtu_GPID_Kd, real_T
1151 rtu_GPID_dT, boolean_T rtu_F_GPID_reset_gov, real_T rtu_GPID_control_error,
1152 real_T rtu_GPID_T_filt_d, B_Calculate_D_term_L4_MABX_T *localB,
1153 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1154{
1155 real_T maxV;
1156 real_T u1;
1157 real_T u2;
1158
1159 /* Outputs for Enabled SubSystem: '<S114>/Calculate_D_term' incorporates:
1160 * EnablePort: '<S118>/Enable'
1161 */
1162 if (rtu_Enable) {
1163 if (!localDW->Calculate_D_term_MODE) {
1164 L4_M_Calculate_D_term_Reset(localDW, localP);
1165 localDW->Calculate_D_term_MODE = true;
1166 }
1167
1168 /* UnitDelay: '<S123>/Unit_Delay1' */
1169 localB->Unit_Delay1 = localDW->Unit_Delay1_DSTATE;
1170
1171 /* Logic: '<S123>/Logical Operator' */
1172 localB->LogicalOperator = (rtu_F_GPID_reset_gov || localB->Unit_Delay1);
1173
1174 /* MinMax: '<S123>/MinMax1' */
1175 if ((rtu_GPID_dT > rtu_GPID_T_filt_d) || rtIsNaN(rtu_GPID_T_filt_d)) {
1176 maxV = rtu_GPID_dT;
1177 } else {
1178 maxV = rtu_GPID_T_filt_d;
1179 }
1180
1181 localB->MinMax1 = maxV;
1182
1183 /* End of MinMax: '<S123>/MinMax1' */
1184
1185 /* Saturate: '<S123>/Saturation' */
1186 maxV = localB->MinMax1;
1187 u1 = localP->Saturation_LowerSat;
1188 u2 = localP->Saturation_UpperSat;
1189 if (maxV > u2) {
1190 localB->Saturation = u2;
1191 } else if (maxV < u1) {
1192 localB->Saturation = u1;
1193 } else {
1194 localB->Saturation = maxV;
1195 }
1196
1197 /* End of Saturate: '<S123>/Saturation' */
1198
1199 /* Product: '<S123>/Divide' */
1200 localB->Divide = rtu_GPID_dT / localB->Saturation;
1201
1202 /* Product: '<S123>/Product2' */
1203 localB->Product2 = rtu_GPID_control_error * localB->Divide;
1204
1205 /* Sum: '<S123>/Subtract1' incorporates:
1206 * Constant: '<S123>/Constant1'
1207 */
1208 localB->Subtract1 = localP->Constant1_Value - localB->Divide;
1209
1210 /* UnitDelay: '<S123>/Unit_Delay2' */
1211 localB->Unit_Delay2 = localDW->Unit_Delay2_DSTATE;
1212
1213 /* Product: '<S123>/Product1' */
1214 localB->Product1 = localB->Subtract1 * localB->Unit_Delay2;
1215
1216 /* Sum: '<S123>/Add1' */
1217 localB->Add1 = localB->Product2 + localB->Product1;
1218
1219 /* Outputs for Atomic SubSystem: '<S123>/If_Then_Else' */
1220 L4_MABX_If_Then_Else(localB->LogicalOperator, rtu_GPID_control_error,
1221 localB->Add1, &localB->If_Then_Else);
1222
1223 /* End of Outputs for SubSystem: '<S123>/If_Then_Else' */
1224
1225 /* Product: '<S118>/Divide' */
1226 localB->Divide_k = localB->If_Then_Else.Switch / rtu_GPID_dT * rtu_GPID_Kd;
1227
1228 /* UnitDelay: '<S124>/FixPt Unit Delay2' */
1229 localB->FixPtUnitDelay2 = localDW->FixPtUnitDelay2_DSTATE;
1230
1231 /* Logic: '<S124>/FixPt Logical Operator' */
1232 localB->FixPtLogicalOperator = (uint8_T)(rtu_F_GPID_reset_gov ||
1233 (localB->FixPtUnitDelay2 != 0));
1234
1235 /* UnitDelay: '<S124>/FixPt Unit Delay1' */
1236 localB->Xold = localDW->FixPtUnitDelay1_DSTATE;
1237
1238 /* Switch: '<S124>/Init' */
1239 if (localB->FixPtLogicalOperator != 0) {
1240 localB->Init = localB->Divide_k;
1241 } else {
1242 localB->Init = localB->Xold;
1243 }
1244
1245 /* End of Switch: '<S124>/Init' */
1246
1247 /* Sum: '<S118>/Subtract' */
1248 localB->Subtract = localB->Divide_k - localB->Init;
1249
1250 /* Switch: '<S124>/Reset' */
1251 localB->Xnew = localB->Divide_k;
1252 } else {
1253 if (localDW->Calculate_D_term_MODE) {
1254 L4_Calculate_D_term_Disable(localB, localDW, localP);
1255 }
1256 }
1257
1258 /* End of Outputs for SubSystem: '<S114>/Calculate_D_term' */
1259}
1260
1261/*
1262 * Update for enable system:
1263 * '<S114>/Calculate_D_term'
1264 * '<S152>/Calculate_D_term'
1265 * '<S246>/Calculate_D_term'
1266 */
1267void L4__Calculate_D_term_Update(B_Calculate_D_term_L4_MABX_T *localB,
1268 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1269{
1270 /* Update for Enabled SubSystem: '<S114>/Calculate_D_term' incorporates:
1271 * EnablePort: '<S118>/Enable'
1272 */
1273 if (localDW->Calculate_D_term_MODE) {
1274 /* Update for UnitDelay: '<S123>/Unit_Delay1' incorporates:
1275 * Constant: '<S123>/Constant'
1276 */
1277 localDW->Unit_Delay1_DSTATE = localP->Constant_Value;
1278
1279 /* Update for UnitDelay: '<S123>/Unit_Delay2' */
1280 localDW->Unit_Delay2_DSTATE = localB->If_Then_Else.Switch;
1281
1282 /* Update for UnitDelay: '<S124>/FixPt Unit Delay2' incorporates:
1283 * Constant: '<S124>/FixPt Constant'
1284 */
1285 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtConstant_Value;
1286
1287 /* Update for UnitDelay: '<S124>/FixPt Unit Delay1' */
1288 localDW->FixPtUnitDelay1_DSTATE = localB->Xnew;
1289 }
1290
1291 /* End of Update for SubSystem: '<S114>/Calculate_D_term' */
1292}
1293
1294/*
1295 * Output and update for atomic system:
1296 * '<S128>/If_Then_Else3'
1297 * '<S166>/If_Then_Else3'
1298 * '<S260>/If_Then_Else3'
1299 * '<S468>/If_Then_Else'
1300 * '<S1079>/If_Then_Else'
1301 */
1302void L4_MABX_If_Then_Else3(boolean_T rtu_If, boolean_T rtu_Then, boolean_T
1303 rtu_Else, B_If_Then_Else_L4_MABX_c_T *localB)
1304{
1305 /* Switch: '<S136>/Switch' */
1306 if (rtu_If) {
1307 localB->Switch = rtu_Then;
1308 } else {
1309 localB->Switch = rtu_Else;
1310 }
1311
1312 /* End of Switch: '<S136>/Switch' */
1313}
1314
1315/*
1316 * System initialize for enable system:
1317 * '<S114>/Calculate_I_term'
1318 * '<S152>/Calculate_I_term'
1319 * '<S246>/Calculate_I_term'
1320 */
1321void L4_MA_Calculate_I_term_Init(B_Calculate_I_term_L4_MABX_T *localB,
1322 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1323{
1324 /* InitializeConditions for UnitDelay: '<S130>/FixPt Unit Delay2' */
1325 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1326
1327 /* InitializeConditions for UnitDelay: '<S130>/FixPt Unit Delay1' */
1328 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1329
1330 /* InitializeConditions for UnitDelay: '<S119>/Unit_Delay' */
1331 localDW->Unit_Delay_DSTATE = localP->Unit_Delay_InitialCondition;
1332
1333 /* SystemInitialize for Enabled SubSystem: '<S119>/Initialize_integral_term' */
1334 /* SystemInitialize for Outport: '<S127>/GPID_i_sum_error_init' */
1335 localB->Subtract2 = localP->GPID_i_sum_error_init_Y0;
1336
1337 /* End of SystemInitialize for SubSystem: '<S119>/Initialize_integral_term' */
1338
1339 /* SystemInitialize for Outport: '<S119>/GPID_i_term' */
1340 localB->If_Then_Else.Switch = localP->GPID_i_term_Y0;
1341
1342 /* SystemInitialize for Outport: '<S119>/F_GPID_hold_i_term' */
1343 localB->LogicalOperator2 = localP->F_GPID_hold_i_term_Y0;
1344}
1345
1346/*
1347 * System reset for enable system:
1348 * '<S114>/Calculate_I_term'
1349 * '<S152>/Calculate_I_term'
1350 * '<S246>/Calculate_I_term'
1351 */
1352void L4_M_Calculate_I_term_Reset(DW_Calculate_I_term_L4_MABX_T *localDW,
1353 P_Calculate_I_term_L4_MABX_T *localP)
1354{
1355 /* InitializeConditions for UnitDelay: '<S130>/FixPt Unit Delay2' */
1356 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1357
1358 /* InitializeConditions for UnitDelay: '<S130>/FixPt Unit Delay1' */
1359 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1360
1361 /* InitializeConditions for UnitDelay: '<S119>/Unit_Delay' */
1362 localDW->Unit_Delay_DSTATE = localP->Unit_Delay_InitialCondition;
1363}
1364
1365/*
1366 * Disable for enable system:
1367 * '<S114>/Calculate_I_term'
1368 * '<S152>/Calculate_I_term'
1369 * '<S246>/Calculate_I_term'
1370 */
1371void L4_Calculate_I_term_Disable(B_Calculate_I_term_L4_MABX_T *localB,
1372 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1373{
1374 /* Disable for Outport: '<S119>/GPID_i_term' */
1375 localB->If_Then_Else.Switch = localP->GPID_i_term_Y0;
1376
1377 /* Disable for Outport: '<S119>/F_GPID_hold_i_term' */
1378 localB->LogicalOperator2 = localP->F_GPID_hold_i_term_Y0;
1379 localDW->Calculate_I_term_MODE = false;
1380}
1381
1382/*
1383 * Start for enable system:
1384 * '<S114>/Calculate_I_term'
1385 * '<S152>/Calculate_I_term'
1386 * '<S246>/Calculate_I_term'
1387 */
1388void L4_M_Calculate_I_term_Start(DW_Calculate_I_term_L4_MABX_T *localDW)
1389{
1390 localDW->Calculate_I_term_MODE = false;
1391}
1392
1393/*
1394 * Outputs for enable system:
1395 * '<S114>/Calculate_I_term'
1396 * '<S152>/Calculate_I_term'
1397 * '<S246>/Calculate_I_term'
1398 */
1399void L4_MABX_Calculate_I_term(boolean_T rtu_Enable, real_T rtu_GPID_p_term,
1400 real_T rtu_GPID_Ki, real_T rtu_GPID_actual_system_output, real_T
1401 rtu_GPID_control_error, boolean_T rtu_F_GPID_reset_gov, real_T rtu_GPID_dT,
1402 real_T rtu_GPID_feed_forward, boolean_T rtu_F_GPID_aw_cond_integration, real_T
1403 rtu_GPID_aw_hysteresis, boolean_T rtu_F_GPID_aw_hold_i_term, real_T
1404 rtu_GPID_output_unlim_prev, B_Calculate_I_term_L4_MABX_T *localB,
1405 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1406{
1407 /* Outputs for Enabled SubSystem: '<S114>/Calculate_I_term' incorporates:
1408 * EnablePort: '<S119>/Enable'
1409 */
1410 if (rtu_Enable) {
1411 if (!localDW->Calculate_I_term_MODE) {
1412 L4_M_Calculate_I_term_Reset(localDW, localP);
1413 localDW->Calculate_I_term_MODE = true;
1414 }
1415
1416 /* Outputs for Enabled SubSystem: '<S119>/Initialize_integral_term' incorporates:
1417 * EnablePort: '<S127>/Enable'
1418 */
1419 if (rtu_F_GPID_reset_gov) {
1420 /* Product: '<S127>/Product' */
1421 localB->Product_j = rtu_GPID_Ki * rtu_GPID_dT * rtu_GPID_control_error;
1422
1423 /* Sum: '<S127>/Subtract' */
1424 localB->Subtract_g = rtu_GPID_actual_system_output - rtu_GPID_feed_forward;
1425
1426 /* Sum: '<S127>/Subtract1' */
1427 localB->Subtract1_k = localB->Subtract_g - rtu_GPID_p_term;
1428
1429 /* Sum: '<S127>/Subtract2' */
1430 localB->Subtract2 = localB->Subtract1_k - localB->Product_j;
1431 }
1432
1433 /* End of Outputs for SubSystem: '<S119>/Initialize_integral_term' */
1434
1435 /* UnitDelay: '<S130>/FixPt Unit Delay2' */
1436 localB->FixPtUnitDelay2 = localDW->FixPtUnitDelay2_DSTATE;
1437
1438 /* Logic: '<S130>/FixPt Logical Operator' */
1439 localB->FixPtLogicalOperator = (uint8_T)(rtu_F_GPID_reset_gov ||
1440 (localB->FixPtUnitDelay2 != 0));
1441
1442 /* UnitDelay: '<S130>/FixPt Unit Delay1' */
1443 localB->Xold = localDW->FixPtUnitDelay1_DSTATE;
1444
1445 /* Switch: '<S130>/Init' */
1446 if (localB->FixPtLogicalOperator != 0) {
1447 localB->Init = localB->Subtract2;
1448 } else {
1449 localB->Init = localB->Xold;
1450 }
1451
1452 /* End of Switch: '<S130>/Init' */
1453
1454 /* Product: '<S126>/Product1' */
1455 localB->Product1 = rtu_GPID_Ki * rtu_GPID_control_error * rtu_GPID_dT;
1456
1457 /* Sum: '<S126>/Add' */
1458 localB->Add = localB->Init + localB->Product1;
1459
1460 /* UnitDelay: '<S119>/Unit_Delay' */
1461 localB->Unit_Delay = localDW->Unit_Delay_DSTATE;
1462
1463 /* Outputs for Atomic SubSystem: '<S128>/If_Then_Else' */
1464
1465 /* Constant: '<S128>/Constant' */
1466 L4_MABX_If_Then_Else(rtu_F_GPID_reset_gov, localP->Constant_Value,
1467 localB->Unit_Delay, &localB->If_Then_Else_c);
1468
1469 /* End of Outputs for SubSystem: '<S128>/If_Then_Else' */
1470
1471 /* Outputs for Atomic SubSystem: '<S128>/If_Then_Else2' */
1472 L4_MABX_If_Then_Else(rtu_F_GPID_reset_gov, rtu_GPID_actual_system_output,
1473 rtu_GPID_output_unlim_prev, &localB->If_Then_Else2);
1474
1475 /* End of Outputs for SubSystem: '<S128>/If_Then_Else2' */
1476
1477 /* Outputs for Atomic SubSystem: '<S128>/If_Then_Else1' */
1478 L4_MABX_If_Then_Else(rtu_F_GPID_aw_cond_integration,
1479 localB->If_Then_Else_c.Switch,
1480 localB->If_Then_Else2.Switch, &localB->If_Then_Else1);
1481
1482 /* End of Outputs for SubSystem: '<S128>/If_Then_Else1' */
1483
1484 /* Product: '<S128>/Product' */
1485 localB->Product = rtu_GPID_Ki * rtu_GPID_control_error *
1486 localB->If_Then_Else1.Switch;
1487
1488 /* RelationalOperator: '<S131>/Compare' incorporates:
1489 * Constant: '<S131>/Constant'
1490 */
1491 localB->Compare = (localB->Product > localP->Constant_Value_p);
1492
1493 /* RelationalOperator: '<S132>/Compare' incorporates:
1494 * Constant: '<S132>/Constant'
1495 */
1496 localB->Compare_n = (localB->Unit_Delay >= localP->Constant_Value_b);
1497
1498 /* Sum: '<S128>/Subtract' */
1499 localB->Subtract = localB->If_Then_Else2.Switch -
1500 rtu_GPID_actual_system_output;
1501
1502 /* RelationalOperator: '<S128>/Relational Operator1' */
1503 localB->RelationalOperator1 = (localB->Subtract > rtu_GPID_aw_hysteresis);
1504
1505 /* Sum: '<S128>/Subtract1' */
1506 localB->Subtract1 = rtu_GPID_actual_system_output -
1507 localB->If_Then_Else2.Switch;
1508
1509 /* RelationalOperator: '<S128>/Relational Operator2' */
1510 localB->RelationalOperator2 = (localB->Subtract1 > rtu_GPID_aw_hysteresis);
1511
1512 /* Outputs for Atomic SubSystem: '<S128>/If_Then_Else3' */
1513 L4_MABX_If_Then_Else3(localB->Compare_n, localB->RelationalOperator1,
1514 localB->RelationalOperator2, &localB->If_Then_Else3);
1515
1516 /* End of Outputs for SubSystem: '<S128>/If_Then_Else3' */
1517
1518 /* Logic: '<S128>/Logical Operator1' */
1519 localB->LogicalOperator1 = (localB->Compare && localB->If_Then_Else3.Switch);
1520
1521 /* Logic: '<S128>/Logical Operator2' */
1522 localB->LogicalOperator2 = (localB->LogicalOperator1 ||
1523 rtu_F_GPID_aw_hold_i_term);
1524
1525 /* Outputs for Atomic SubSystem: '<S126>/If_Then_Else' */
1526 L4_MABX_If_Then_Else(localB->LogicalOperator2, localB->Init, localB->Add,
1527 &localB->If_Then_Else);
1528
1529 /* End of Outputs for SubSystem: '<S126>/If_Then_Else' */
1530
1531 /* Switch: '<S130>/Reset' */
1532 if (rtu_F_GPID_reset_gov) {
1533 localB->Xnew = localB->Subtract2;
1534 } else {
1535 localB->Xnew = localB->If_Then_Else.Switch;
1536 }
1537
1538 /* End of Switch: '<S130>/Reset' */
1539 } else {
1540 if (localDW->Calculate_I_term_MODE) {
1541 L4_Calculate_I_term_Disable(localB, localDW, localP);
1542 }
1543 }
1544
1545 /* End of Outputs for SubSystem: '<S114>/Calculate_I_term' */
1546}
1547
1548/*
1549 * Update for enable system:
1550 * '<S114>/Calculate_I_term'
1551 * '<S152>/Calculate_I_term'
1552 * '<S246>/Calculate_I_term'
1553 */
1554void L4__Calculate_I_term_Update(B_Calculate_I_term_L4_MABX_T *localB,
1555 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1556{
1557 /* Update for Enabled SubSystem: '<S114>/Calculate_I_term' incorporates:
1558 * EnablePort: '<S119>/Enable'
1559 */
1560 if (localDW->Calculate_I_term_MODE) {
1561 /* Update for UnitDelay: '<S130>/FixPt Unit Delay2' incorporates:
1562 * Constant: '<S130>/FixPt Constant'
1563 */
1564 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtConstant_Value;
1565
1566 /* Update for UnitDelay: '<S130>/FixPt Unit Delay1' */
1567 localDW->FixPtUnitDelay1_DSTATE = localB->Xnew;
1568
1569 /* Update for UnitDelay: '<S119>/Unit_Delay' */
1570 localDW->Unit_Delay_DSTATE = localB->If_Then_Else.Switch;
1571 }
1572
1573 /* End of Update for SubSystem: '<S114>/Calculate_I_term' */
1574}
1575
1576/* Output and update for atomic system: '<S106>/If_Then_Else' */
1577void L4_MABX_If_Then_Else_l(boolean_T rtu_If, boolean_T rtu_Then, boolean_T
1578 rtu_Else, B_If_Then_Else_L4_MABX_m_T *localB)
1579{
1580 /* Switch: '<S184>/Switch' */
1581 if (rtu_If) {
1582 localB->Switch = rtu_Then;
1583 } else {
1584 localB->Switch = rtu_Else;
1585 }
1586
1587 /* End of Switch: '<S184>/Switch' */
1588}
1589
1590/*
1591 * Output and update for atomic system:
1592 * '<S185>/If_Then_Else'
1593 * '<S185>/If_Then_Else1'
1594 * '<S186>/If_Then_Else'
1595 * '<S186>/If_Then_Else1'
1596 * '<S282>/If_Then_Else'
1597 * '<S283>/If_Then_Else'
1598 * '<S283>/If_Then_Else1'
1599 * '<S362>/If_Then_Else'
1600 * '<S359>/If_Then_Else'
1601 * '<S368>/If_Then_Else'
1602 * ...
1603 */
1604void L4_MABX_If_Then_Else_g(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1605 B_If_Then_Else_L4_MABX_k_T *localB)
1606{
1607 /* Switch: '<S187>/Switch' */
1608 if (rtu_If) {
1609 localB->Switch = rtu_Then;
1610 } else {
1611 localB->Switch = rtu_Else;
1612 }
1613
1614 /* End of Switch: '<S187>/Switch' */
1615}
1616
1617/* Output and update for atomic system: '<S312>/If_Then_Else' */
1618void L4_MABX_If_Then_Else_c(real_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1619 B_If_Then_Else_L4_MABX_mf_T *localB)
1620{
1621 /* Switch: '<S322>/Switch' */
1622 if (rtu_If != 0.0) {
1623 localB->Switch = rtu_Then;
1624 } else {
1625 localB->Switch = rtu_Else;
1626 }
1627
1628 /* End of Switch: '<S322>/Switch' */
1629}
1630
1631/* Output and update for atomic system: '<S352>/If_Then_Else' */
1632void L4_MABX_If_Then_Else_m(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Then_l,
1633 real_T rtu_Then_f, real_T rtu_Else, real_T rtu_Else_i, real_T rtu_Else_k,
1634 B_If_Then_Else_L4_MABX_h_T *localB)
1635{
1636 /* Switch: '<S354>/Switch' */
1637 if (rtu_If) {
1638 localB->Vehicle_speed_target = rtu_Then;
1639 localB->Vehicle_speed = rtu_Then_l;
1640 localB->Distance_m = rtu_Then_f;
1641 } else {
1642 localB->Vehicle_speed_target = rtu_Else;
1643 localB->Vehicle_speed = rtu_Else_i;
1644 localB->Distance_m = rtu_Else_k;
1645 }
1646
1647 /* End of Switch: '<S354>/Switch' */
1648}
1649
1650/* System initialize for function-call system: '<S401>/Background_Task' */
1651void L4_MAB_Background_Task_Init(void)
1652{
1653 /* InitializeConditions for S-Function (dsa_tcpip_bkg_sfcn): '<S411>/dsa_tcpip_bkg_sfcn' */
1654 /* Level2 S-Function Block: '<S411>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1655 {
1656 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1657 sfcnInitializeConditions(rts);
1658 if (ssGetErrorStatus(rts) != (NULL))
1659 return;
1660 }
1661}
1662
1663/* System reset for function-call system: '<S401>/Background_Task' */
1664void L4_MA_Background_Task_Reset(void)
1665{
1666 /* InitializeConditions for S-Function (dsa_tcpip_bkg_sfcn): '<S411>/dsa_tcpip_bkg_sfcn' */
1667 /* Level2 S-Function Block: '<S411>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1668 {
1669 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1670 sfcnInitializeConditions(rts);
1671 if (ssGetErrorStatus(rts) != (NULL))
1672 return;
1673 }
1674}
1675
1676/* Start for function-call system: '<S401>/Background_Task' */
1677void L4_MA_Background_Task_Start(void)
1678{
1679 /* Start for S-Function (dsa_tcpip_bkg_sfcn): '<S411>/dsa_tcpip_bkg_sfcn' */
1680 /* Level2 S-Function Block: '<S411>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1681 {
1682 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1683 sfcnStart(rts);
1684 if (ssGetErrorStatus(rts) != (NULL))
1685 return;
1686 }
1687}
1688
1689/* Output and update for function-call system: '<S401>/Background_Task' */
1690void L4_MABX_Background_Task(void)
1691{
1692 /* S-Function (dsa_tcpip_bkg_sfcn): '<S411>/dsa_tcpip_bkg_sfcn' */
1693
1694 /* Level2 S-Function Block: '<S411>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1695 {
1696 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1697 sfcnOutputs(rts,9);
1698 }
1699}
1700
1701/* Termination for function-call system: '<S401>/Background_Task' */
1702void L4_MAB_Background_Task_Term(void)
1703{
1704 /* Terminate for S-Function (dsa_tcpip_bkg_sfcn): '<S411>/dsa_tcpip_bkg_sfcn' */
1705 /* Level2 S-Function Block: '<S411>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1706 {
1707 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1708 sfcnTerminate(rts);
1709 }
1710}
1711
1712/* System initialize for function-call system: '<S401>/IRQ_Level_2_SW_INT' */
1713void L4__IRQ_Level_2_SW_INT_Init(void)
1714{
1715 /* InitializeConditions for S-Function (dsa_tcpip_irq_l2_sfcn): '<S412>/dsa_tcpip_irq_l2_sfcn' */
1716 /* Level2 S-Function Block: '<S412>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1717 {
1718 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1719 sfcnInitializeConditions(rts);
1720 if (ssGetErrorStatus(rts) != (NULL))
1721 return;
1722 }
1723}
1724
1725/* System reset for function-call system: '<S401>/IRQ_Level_2_SW_INT' */
1726void L4_IRQ_Level_2_SW_INT_Reset(void)
1727{
1728 /* InitializeConditions for S-Function (dsa_tcpip_irq_l2_sfcn): '<S412>/dsa_tcpip_irq_l2_sfcn' */
1729 /* Level2 S-Function Block: '<S412>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1730 {
1731 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1732 sfcnInitializeConditions(rts);
1733 if (ssGetErrorStatus(rts) != (NULL))
1734 return;
1735 }
1736}
1737
1738/* Start for function-call system: '<S401>/IRQ_Level_2_SW_INT' */
1739void L4_IRQ_Level_2_SW_INT_Start(void)
1740{
1741 /* Start for S-Function (dsa_tcpip_irq_l2_sfcn): '<S412>/dsa_tcpip_irq_l2_sfcn' */
1742 /* Level2 S-Function Block: '<S412>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1743 {
1744 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1745 sfcnStart(rts);
1746 if (ssGetErrorStatus(rts) != (NULL))
1747 return;
1748 }
1749}
1750
1751/* Output and update for function-call system: '<S401>/IRQ_Level_2_SW_INT' */
1752void L4_MABX_IRQ_Level_2_SW_INT(void)
1753{
1754 /* S-Function (dsa_tcpip_irq_l2_sfcn): '<S412>/dsa_tcpip_irq_l2_sfcn' */
1755
1756 /* Level2 S-Function Block: '<S412>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1757 {
1758 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1759 sfcnOutputs(rts,10);
1760 }
1761}
1762
1763/* Termination for function-call system: '<S401>/IRQ_Level_2_SW_INT' */
1764void L4__IRQ_Level_2_SW_INT_Term(void)
1765{
1766 /* Terminate for S-Function (dsa_tcpip_irq_l2_sfcn): '<S412>/dsa_tcpip_irq_l2_sfcn' */
1767 /* Level2 S-Function Block: '<S412>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1768 {
1769 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1770 sfcnTerminate(rts);
1771 }
1772}
1773
1774/* System initialize for function-call system: '<S413>/Tcp Input Processing' */
1775void L4__TcpInputProcessing_Init(void)
1776{
1777 /* SystemInitialize for S-Function (rti_commonblock): '<S415>/S-Function1' incorporates:
1778 * SubSystem: '<S401>/IRQ_Level_2_SW_INT'
1779 */
1780 L4__IRQ_Level_2_SW_INT_Init();
1781
1782 /* End of SystemInitialize for S-Function (rti_commonblock): '<S415>/S-Function1' */
1783}
1784
1785/* System reset for function-call system: '<S413>/Tcp Input Processing' */
1786void L4_TcpInputProcessing_Reset(void)
1787{
1788 /* SystemReset for S-Function (rti_commonblock): '<S415>/S-Function1' incorporates:
1789 * SubSystem: '<S401>/IRQ_Level_2_SW_INT'
1790 */
1791 L4_IRQ_Level_2_SW_INT_Reset();
1792
1793 /* End of SystemReset for S-Function (rti_commonblock): '<S415>/S-Function1' */
1794}
1795
1796/* Start for function-call system: '<S413>/Tcp Input Processing' */
1797void L4_TcpInputProcessing_Start(void)
1798{
1799 /* Start for S-Function (rti_commonblock): '<S415>/S-Function1' incorporates:
1800 * SubSystem: '<S401>/IRQ_Level_2_SW_INT'
1801 */
1802 L4_IRQ_Level_2_SW_INT_Start();
1803
1804 /* End of Start for S-Function (rti_commonblock): '<S415>/S-Function1' */
1805}
1806
1807/* Output and update for function-call system: '<S413>/Tcp Input Processing' */
1808void L4_MABX_TcpInputProcessing(void)
1809{
1810 /* S-Function (rti_commonblock): '<S415>/S-Function1' */
1811
1812 /* This comment workarounds a code generation problem */
1813
1814 /* dSPACE Software Interrupt Block: <S413>/Tcp Input Processing */
1815 rtk_schedule_task(S_SOFTTASK,0);
1816
1817 /* End of Outputs for S-Function (rti_commonblock): '<S415>/S-Function1' */
1818}
1819
1820/*
1821 * Forced non-inlined (FNI) function call stub
1822 * for '<S413>/Tcp Input Processing'
1823 */
1824boolean_T L4_MABX_TcpInputProcessingFNI(RT_MODEL_L4_MABX_T *const L4_MABX_M,
1825 int_T controlPortIdx, int_T tid)
1826{
1827 L4_MABX_TcpInputProcessing();
1828 UNUSED_PARAMETER(L4_MABX_M);
1829 UNUSED_PARAMETER(controlPortIdx);
1830 UNUSED_PARAMETER(tid);
1831 return (1);
1832}
1833
1834/*
1835 * Forced non-inlined (FNI) function call stub
1836 * for '<S413>/Tcp Input Processing'
1837 */
1838boolean_T L4_TcpInputProcessing_ResetFNI(RT_MODEL_L4_MABX_T *const L4_MABX_M,
1839 int_T controlPortIdx, int_T tid)
1840{
1841 UNUSED_PARAMETER(L4_MABX_M);
1842 UNUSED_PARAMETER(controlPortIdx);
1843 UNUSED_PARAMETER(tid);
1844 return (1);
1845}
1846
1847/* Termination for function-call system: '<S413>/Tcp Input Processing' */
1848void L4__TcpInputProcessing_Term(void)
1849{
1850 /* Terminate for S-Function (rti_commonblock): '<S415>/S-Function1' incorporates:
1851 * SubSystem: '<S401>/IRQ_Level_2_SW_INT'
1852 */
1853 L4__IRQ_Level_2_SW_INT_Term();
1854
1855 /* End of Terminate for S-Function (rti_commonblock): '<S415>/S-Function1' */
1856}
1857
1858/* System initialize for function-call system: '<S401>/Interrupt_Task' */
1859void L4_MABX_Interrupt_Task_Init(void)
1860{
1861 /* InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' */
1862
1863 /* Level2 S-Function Block: '<S413>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1864 {
1865 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1866 sfcnInitializeConditions(rts);
1867 if (ssGetErrorStatus(rts) != (NULL))
1868 return;
1869 }
1870
1871 /* End of InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' */
1872
1873 /* SystemInitialize for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' incorporates:
1874 * SubSystem: '<S413>/Tcp Input Processing'
1875 */
1876 L4__TcpInputProcessing_Init();
1877
1878 /* End of SystemInitialize for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' */
1879}
1880
1881/* System reset for function-call system: '<S401>/Interrupt_Task' */
1882void L4_MAB_Interrupt_Task_Reset(void)
1883{
1884 /* InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' */
1885
1886 /* Level2 S-Function Block: '<S413>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1887 {
1888 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1889 sfcnInitializeConditions(rts);
1890 if (ssGetErrorStatus(rts) != (NULL))
1891 return;
1892 }
1893
1894 /* End of InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' */
1895
1896 /* SystemReset for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' incorporates:
1897 * SubSystem: '<S413>/Tcp Input Processing'
1898 */
1899 L4_TcpInputProcessing_Reset();
1900
1901 /* End of SystemReset for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' */
1902}
1903
1904/* Start for function-call system: '<S401>/Interrupt_Task' */
1905void L4_MAB_Interrupt_Task_Start(void)
1906{
1907 /* Start for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' incorporates:
1908 * SubSystem: '<S413>/Tcp Input Processing'
1909 */
1910 L4_TcpInputProcessing_Start();
1911
1912 /* Level2 S-Function Block: '<S413>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1913 {
1914 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1915 sfcnStart(rts);
1916 if (ssGetErrorStatus(rts) != (NULL))
1917 return;
1918 }
1919
1920 /* End of Start for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' */
1921}
1922
1923/* Output and update for function-call system: '<S401>/Interrupt_Task' */
1924void L4_MABX_Interrupt_Task(void)
1925{
1926 /* S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' */
1927
1928 /* Level2 S-Function Block: '<S413>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1929 {
1930 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1931 sfcnOutputs(rts,11);
1932 }
1933
1934 /* End of Outputs for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' */
1935}
1936
1937/* Termination for function-call system: '<S401>/Interrupt_Task' */
1938void L4_MABX_Interrupt_Task_Term(void)
1939{
1940 /* Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' */
1941
1942 /* Level2 S-Function Block: '<S413>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1943 {
1944 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1945 sfcnTerminate(rts);
1946 }
1947
1948 /* End of Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' */
1949
1950 /* Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' incorporates:
1951 * SubSystem: '<S413>/Tcp Input Processing'
1952 */
1953 L4__TcpInputProcessing_Term();
1954
1955 /* End of Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S413>/dsa_tcpip_irq_l1_sfcn' */
1956}
1957
1958/* Output and update for atomic system: '<S746>/If_Then_Else' */
1959void L4_MABX_If_Then_Else_e(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else)
1960{
1961 /* Switch: '<S767>/Switch' */
1962 if (rtu_If) {
1963 Pedal_pwm_position = rtu_Then;
1964 } else {
1965 Pedal_pwm_position = rtu_Else;
1966 }
1967
1968 /* End of Switch: '<S767>/Switch' */
1969}
1970
1971/* System initialize for function-call system: '<S419>/IncrementTimer' */
1972void L4_MABX_IncrementTimer_Init(void)
1973{
1974 /* InitializeConditions for UnitDelay: '<S849>/Unit_Delay' */
1975 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_P.Unit_Delay_InitialCondition_g;
1976
1977 /* SystemInitialize for Outport: '<S849>/Out1' */
1978 L4_MABX_B.Add = L4_MABX_P.Out1_Y0_g;
1979}
1980
1981/* System reset for function-call system: '<S419>/IncrementTimer' */
1982void L4_MAB_IncrementTimer_Reset(void)
1983{
1984 /* InitializeConditions for UnitDelay: '<S849>/Unit_Delay' */
1985 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_P.Unit_Delay_InitialCondition_g;
1986}
1987
1988/* Output and update for function-call system: '<S419>/IncrementTimer' */
1989void L4_MABX_IncrementTimer(void)
1990{
1991 /* UnitDelay: '<S849>/Unit_Delay' */
1992 L4_MABX_B.Unit_Delay_k = L4_MABX_DW.Unit_Delay_DSTATE_i;
1993
1994 /* Sum: '<S849>/Add' incorporates:
1995 * Constant: '<S849>/Constant1'
1996 */
1997 L4_MABX_B.Add = L4_MABX_P.Constant1_Value_ja + L4_MABX_B.Unit_Delay_k;
1998
1999 /* Update for UnitDelay: '<S849>/Unit_Delay' */
2000 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_B.Add;
2001}
2002
2003/*
2004 * Output and update for enable system:
2005 * '<S979>/ALL_CTRL_DISABLED'
2006 * '<S979>/DEFAULT_TRQ_CTRL_MODE'
2007 * '<S979>/EXT_TRQ_CTRL_MODE_A'
2008 * '<S979>/EXT_TRQ_CTRL_MODE_B'
2009 * '<S979>/EXT_TRQ_CTRL_MODE_C'
2010 */
2011void L4_MABX_ALL_CTRL_DISABLED(boolean_T rtu_Enable, int32_T *rty_Out1,
2012 P_ALL_CTRL_DISABLED_L4_MABX_T *localP)
2013{
2014 /* Outputs for Enabled SubSystem: '<S979>/ALL_CTRL_DISABLED' incorporates:
2015 * EnablePort: '<S994>/Enable'
2016 */
2017 if (rtu_Enable) {
2018 /* SignalConversion: '<S994>/OutportBufferForOut1' incorporates:
2019 * Constant: '<S994>/Constant'
2020 */
2021 *rty_Out1 = localP->Constant_Value;
2022 }
2023
2024 /* End of Outputs for SubSystem: '<S979>/ALL_CTRL_DISABLED' */
2025}
2026
2027/* Output and update for atomic system: '<S1017>/If_Then_Else' */
2028void L4_MABX_If_Then_Else_p(boolean_T rtu_If, real_T rtu_Then,
2029 ENUM_XBR_EBI_MODE_T rtu_Then_m, ENUM_XBR_PRIORITY_T rtu_Then_o,
2030 ENUM_XBR_CONTROL_MODE_T rtu_Then_d, ENUM_XBR_PASS_THROUGH_ACTIVE_T rtu_Then_k,
2031 real_T rtu_Then_p, real_T rtu_Then_c, real_T rtu_Else, ENUM_XBR_EBI_MODE_T
2032 rtu_Else_o, ENUM_XBR_PRIORITY_T rtu_Else_j, ENUM_XBR_CONTROL_MODE_T rtu_Else_h,
2033 ENUM_XBR_PASS_THROUGH_ACTIVE_T rtu_Else_b, real_T rtu_Else_d, real_T
2034 rtu_Else_g, B_If_Then_Else_L4_MABX_a_T *localB)
2035{
2036 /* Switch: '<S1041>/Switch' */
2037 if (rtu_If) {
2038 localB->XBRExternalAccelDemand = rtu_Then;
2039 localB->XBREnduranceBrakeIntegrationMod = rtu_Then_m;
2040 localB->XBRPriority = rtu_Then_o;
2041 localB->XBRControlMode = rtu_Then_d;
2042 localB->XBRPassThroughActive = rtu_Then_k;
2043 localB->XBRUrgency = rtu_Then_p;
2044 localB->XBRPassThroughEnabled = rtu_Then_c;
2045 } else {
2046 localB->XBRExternalAccelDemand = rtu_Else;
2047 localB->XBREnduranceBrakeIntegrationMod = rtu_Else_o;
2048 localB->XBRPriority = rtu_Else_j;
2049 localB->XBRControlMode = rtu_Else_h;
2050 localB->XBRPassThroughActive = rtu_Else_b;
2051 localB->XBRUrgency = rtu_Else_d;
2052 localB->XBRPassThroughEnabled = rtu_Else_g;
2053 }
2054
2055 /* End of Switch: '<S1041>/Switch' */
2056}
2057
2058static int32_T safe_cast_to_ENUM_XPR_CONTROL_M(int32_T input)
2059{
2060 int32_T y;
2061
2062 /* Initialize output value to default value for ENUM_XPR_CONTROL_MODE_T (NO_BRAKE_DEMAND) */
2063 y = 0;
2064 if (((input >= 0) && (input <= 3)) || ((input >= 13) && (input <= 15))) {
2065 /* Set output value to input value if it is a member of ENUM_XPR_CONTROL_MODE_T */
2066 y = input;
2067 }
2068
2069 return y;
2070}
2071
2072static int32_T safe_cast_to_ENUM_XPR_ERROR_STA(int32_T input)
2073{
2074 int32_T y;
2075
2076 /* Initialize output value to default value for ENUM_XPR_ERROR_STATE_T (XPR_OK) */
2077 y = 0;
2078 if ((input >= 0) && (input <= 3)) {
2079 /* Set output value to input value if it is a member of ENUM_XPR_ERROR_STATE_T */
2080 y = input;
2081 }
2082
2083 return y;
2084}
2085
2086/* Function for Chart: '<S213>/Relay_control_state_machine' */
2087static void L4_MABX_enter_atomic_INITIAL(void)
2088{
2089 /* Entry 'INITIAL': '<S220>:12' */
2090 L4_MABX_B.F_Ignition_relay_command_i = false;
2091 L4_MABX_B.F_Inverter_relay_command_p = false;
2092 L4_MABX_B.F_MABX_relay_command_n = false;
2093 L4_MABX_B.F_Sensor_relay_command_k = false;
2094 L4_MABX_DW.IGN_RELAY_ON_DELAY_SECS_APV =
2095 L4_MABX_B.TmpSignalConversionAtSFunctionI[0];
2096 L4_MABX_DW.INVERTER_RELAY_ON_DELAY_SECS_AP =
2097 L4_MABX_B.TmpSignalConversionAtSFunctionI[1];
2098 L4_MABX_DW.MABX_RELAY_ON_DELAY_SECS_APV =
2099 L4_MABX_B.TmpSignalConversionAtSFunctionI[2];
2100 L4_MABX_DW.SENSOR_RELAY_ON_DELAY_SECS_APV =
2101 L4_MABX_B.TmpSignalConversionAtSFunctionI[3];
2102 L4_MABX_DW.IGN_RELAY_OFF_DELAY_SECS_APV =
2103 L4_MABX_B.TmpSignalConversionAtSFunctio_k[0];
2104 L4_MABX_DW.INVERTER_RELAY_OFF_DELAY_SECS_A =
2105 L4_MABX_B.TmpSignalConversionAtSFunctio_k[1];
2106 L4_MABX_DW.MABX_RELAY_OFF_DELAY_SECS_APV =
2107 L4_MABX_B.TmpSignalConversionAtSFunctio_k[2];
2108 L4_MABX_DW.SENSOR_RELAY_OFF_DELAY_SECS_APV =
2109 L4_MABX_B.TmpSignalConversionAtSFunctio_k[3];
2110}
2111
2112real_T rt_atan2d_snf(real_T u0, real_T u1)
2113{
2114 real_T y;
2115 int32_T tmp;
2116 int32_T tmp_0;
2117 if (rtIsNaN(u0) || rtIsNaN(u1)) {
2118 y = (rtNaN);
2119 } else if (rtIsInf(u0) && rtIsInf(u1)) {
2120 if (u1 > 0.0) {
2121 tmp = 1;
2122 } else {
2123 tmp = -1;
2124 }
2125
2126 if (u0 > 0.0) {
2127 tmp_0 = 1;
2128 } else {
2129 tmp_0 = -1;
2130 }
2131
2132 y = atan2(tmp_0, tmp);
2133 } else if (u1 == 0.0) {
2134 if (u0 > 0.0) {
2135 y = RT_PI / 2.0;
2136 } else if (u0 < 0.0) {
2137 y = -(RT_PI / 2.0);
2138 } else {
2139 y = 0.0;
2140 }
2141 } else {
2142 y = atan2(u0, u1);
2143 }
2144
2145 return y;
2146}
2147
2148real_T rt_powd_snf(real_T u0, real_T u1)
2149{
2150 real_T y;
2151 real_T tmp;
2152 real_T tmp_0;
2153 if (rtIsNaN(u0) || rtIsNaN(u1)) {
2154 y = (rtNaN);
2155 } else {
2156 tmp = fabs(u0);
2157 tmp_0 = fabs(u1);
2158 if (rtIsInf(u1)) {
2159 if (tmp == 1.0) {
2160 y = 1.0;
2161 } else if (tmp > 1.0) {
2162 if (u1 > 0.0) {
2163 y = (rtInf);
2164 } else {
2165 y = 0.0;
2166 }
2167 } else if (u1 > 0.0) {
2168 y = 0.0;
2169 } else {
2170 y = (rtInf);
2171 }
2172 } else if (tmp_0 == 0.0) {
2173 y = 1.0;
2174 } else if (tmp_0 == 1.0) {
2175 if (u1 > 0.0) {
2176 y = u0;
2177 } else {
2178 y = 1.0 / u0;
2179 }
2180 } else if (u1 == 2.0) {
2181 y = u0 * u0;
2182 } else if ((u1 == 0.5) && (u0 >= 0.0)) {
2183 y = sqrt(u0);
2184 } else if ((u0 < 0.0) && (u1 > floor(u1))) {
2185 y = (rtNaN);
2186 } else {
2187 y = pow(u0, u1);
2188 }
2189 }
2190
2191 return y;
2192}
2193
2194/* Function for Chart: '<S346>/VehicleSpeedSetpointDynamicCalculation' */
2195static void L4_MABX_Calculate_abc(void)
2196{
2197 /* MATLAB Function 'Calculate_abc': '<S361>:158' */
2198 /* Graphical Function 'Calculate_abc': '<S361>:158' */
2199 /* '<S361>:160:1' */
2200 L4_MABX_DW.a = L4_MABX_DW.Jerk56 - L4_MABX_DW.Jerk12;
2201
2202 /* '<S361>:160:1' */
2203 L4_MABX_DW.b = ((L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.Jerk12 -
2204 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56) -
2205 L4_MABX_DW.Jerk12 * L4_MABX_DW.Jerk56 * L4_MABX_DW.TimeFinal) *
2206 2.0;
2207
2208 /* '<S361>:160:3' */
2209 L4_MABX_DW.c = (2.0 * L4_MABX_DW.Jerk12 * L4_MABX_DW.Jerk56 *
2210 (L4_MABX_DW.VelocityFinalLimited -
2211 L4_MABX_DW.VelocityInitialLimited) +
2212 L4_MABX_DW.AccelerationInitialLimited *
2213 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56) -
2214 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.AccelerationFinalLimited *
2215 L4_MABX_DW.Jerk12;
2216}
2217
2218/* Function for Chart: '<S346>/VehicleSpeedSetpointDynamicCalculation' */
2219static void L4_MABX_CalculateAlternate_abc(void)
2220{
2221 /* MATLAB Function 'CalculateAlternate_abc': '<S361>:286' */
2222 /* Graphical Function 'CalculateAlternate_abc': '<S361>:286' */
2223 /* '<S361>:285:1' */
2224 L4_MABX_DW.a = 1.0;
2225
2226 /* '<S361>:285:1' */
2227 L4_MABX_DW.b = ((L4_MABX_DW.TimeFinal - 0.005) * L4_MABX_DW.Jerk56 -
2228 L4_MABX_DW.AccelerationFinalLimited) * 2.0;
2229
2230 /* '<S361>:285:3' */
2231 L4_MABX_DW.c = 2.0 * L4_MABX_DW.Jerk56 * (L4_MABX_DW.VelocityInitialLimited -
2232 L4_MABX_DW.VelocityFinalLimited) + L4_MABX_DW.AccelerationFinalLimited *
2233 L4_MABX_DW.AccelerationFinalLimited;
2234}
2235
2236/* Function for Chart: '<S346>/VehicleSpeedSetpointDynamicCalculation' */
2237static void L4_MABX_CalculateAcceleration34(void)
2238{
2239 real_T u;
2240 real_T u0;
2241 real_T u1;
2242
2243 /* MATLAB Function 'CalculateAcceleration34': '<S361>:167' */
2244 /* Graphical Function 'CalculateAcceleration34': '<S361>:167' */
2245 /* '<S361>:186:1' */
2246 /* '<S361>:186:5' */
2247 /* '<S361>:186:8' */
2248 u = L4_MABX_DW.Jerk12;
2249 if (u < 0.0) {
2250 u = -1.0;
2251 } else if (u > 0.0) {
2252 u = 1.0;
2253 } else if (u == 0.0) {
2254 u = 0.0;
2255 } else {
2256 u = (rtNaN);
2257 }
2258
2259 u0 = fabs(L4_MABX_DW.Jerk12);
2260 u1 = fabs(((((L4_MABX_DW.AccelerationInitialLimited *
2261 L4_MABX_DW.AccelerationFinalLimited -
2262 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56 *
2263 L4_MABX_DW.TimeFinal) + (L4_MABX_DW.VelocityFinalLimited -
2264 L4_MABX_DW.VelocityInitialLimited) * L4_MABX_DW.Jerk56) * 2.0 -
2265 L4_MABX_DW.AccelerationInitialLimited *
2266 L4_MABX_DW.AccelerationInitialLimited) -
2267 L4_MABX_DW.AccelerationFinalLimited *
2268 L4_MABX_DW.AccelerationFinalLimited) /
2269 (((L4_MABX_DW.VelocityFinalLimited -
2270 L4_MABX_DW.VelocityInitialLimited) -
2271 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.TimeFinal) * 2.0
2272 + L4_MABX_DW.TimeFinal * L4_MABX_DW.TimeFinal * L4_MABX_DW.Jerk56))
2273 + 0.001;
2274 if ((u0 > u1) || rtIsNaN(u1)) {
2275 u1 = u0;
2276 }
2277
2278 L4_MABX_DW.Jerk12 = u * u1;
2279
2280 /* '<S361>:186:11' */
2281 u1 = L4_MABX_DW.Jerk12;
2282 if ((10.0 < u1) || rtIsNaN(u1)) {
2283 u1 = 10.0;
2284 }
2285
2286 if ((-10.0 > u1) || rtIsNaN(u1)) {
2287 L4_MABX_DW.Jerk12 = -10.0;
2288 } else {
2289 L4_MABX_DW.Jerk12 = u1;
2290 }
2291
2292 /* '<S361>:186:11' */
2293 L4_MABX_Calculate_abc();
2294
2295 /* '<S361>:187:1' */
2296 if (fabs(L4_MABX_DW.a) < 0.01) {
2297 /* '<S361>:188:1' */
2298 L4_MABX_DW.Jerk12 = L4_MABX_DW.Jerk56;
2299
2300 /* '<S361>:188:1' */
2301 L4_MABX_Calculate_abc();
2302
2303 /* '<S361>:188:1' */
2304 L4_MABX_DW.Acceleration34 = -L4_MABX_DW.c / L4_MABX_DW.b;
2305
2306 /* '<S361>:188:2' */
2307 L4_MABX_DW.AlternateMethod = false;
2308 } else {
2309 /* '<S361>:224:1' */
2310 if (L4_MABX_DW.b * L4_MABX_DW.b <= 4.0 * L4_MABX_DW.a * L4_MABX_DW.c) {
2311 /* '<S361>:292:1' */
2312 L4_MABX_CalculateAlternate_abc();
2313
2314 /* '<S361>:292:1' */
2315 L4_MABX_DW.Acceleration34 = -L4_MABX_DW.b / (2.0 * L4_MABX_DW.a);
2316
2317 /* '<S361>:292:2' */
2318 L4_MABX_DW.AlternateMethod = true;
2319 } else {
2320 /* '<S361>:294:1' */
2321 L4_MABX_DW.Acceleration34 = (sqrt(L4_MABX_DW.b * L4_MABX_DW.b - 4.0 *
2322 L4_MABX_DW.a * L4_MABX_DW.c) + -L4_MABX_DW.b) / (2.0 * L4_MABX_DW.a);
2323
2324 /* '<S361>:294:2' */
2325 L4_MABX_DW.AlternateMethod = false;
2326 }
2327 }
2328}
2329
2330static int32_T safe_cast_to_ENUM_CAN_STATUS_DI(int32_T input)
2331{
2332 int32_T y;
2333
2334 /* Initialize output value to default value for ENUM_CAN_STATUS_DIAG_T (ACTIVE) */
2335 y = 0;
2336 if ((input >= 0) && (input <= 2)) {
2337 /* Set output value to input value if it is a member of ENUM_CAN_STATUS_DIAG_T */
2338 y = input;
2339 }
2340
2341 return y;
2342}
2343
2344/* Model output function for TID0 */
2345void L4_MABX_output0(void) /* Sample time: [0.01s, 0.0s] */
2346{
2347 int_T tid = 0;
2348 uint8_T starting_index;
2349 real_T AccelerationAverage;
2350 real_T DeltaTimeFinal;
2351 uint8_T j;
2352 real_T PositionFinalLimited;
2353 real_T Time56;
2354 real_T DeltaTime;
2355 uint32_T tmp;
2356 boolean_T zcEvent;
2357 int32_T i;
2358 uint32_T q0;
2359 uint16_T tmp_0;
2360 int8_T tmp_1;
2361
2362 /* Update the flag to indicate when data transfers from
2363 * Sample time: [0.01s, 0.0s] to Sample time: [0.02s, 0.0s] */
2364 L4_MABX_M->Timing.perTaskSampleHits[1] =
2365 (L4_MABX_M->Timing.RateInteraction.TID0_1 == 0);
2366 (L4_MABX_M->Timing.RateInteraction.TID0_1)++;
2367 if ((L4_MABX_M->Timing.RateInteraction.TID0_1) > 1) {
2368 L4_MABX_M->Timing.RateInteraction.TID0_1 = 0;
2369 }
2370
2371 /* Update the flag to indicate when data transfers from
2372 * Sample time: [0.01s, 0.0s] to Sample time: [0.05s, 0.0s] */
2373 L4_MABX_M->Timing.perTaskSampleHits[2] =
2374 (L4_MABX_M->Timing.RateInteraction.TID0_2 == 0);
2375 (L4_MABX_M->Timing.RateInteraction.TID0_2)++;
2376 if ((L4_MABX_M->Timing.RateInteraction.TID0_2) > 4) {
2377 L4_MABX_M->Timing.RateInteraction.TID0_2 = 0;
2378 }
2379
2380 /* Update the flag to indicate when data transfers from
2381 * Sample time: [0.01s, 0.0s] to Sample time: [0.1s, 0.0s] */
2382 L4_MABX_M->Timing.perTaskSampleHits[3] =
2383 (L4_MABX_M->Timing.RateInteraction.TID0_3 == 0);
2384 (L4_MABX_M->Timing.RateInteraction.TID0_3)++;
2385 if ((L4_MABX_M->Timing.RateInteraction.TID0_3) > 9) {
2386 L4_MABX_M->Timing.RateInteraction.TID0_3 = 0;
2387 }
2388
2389 /* Update the flag to indicate when data transfers from
2390 * Sample time: [0.01s, 0.0s] to Sample time: [1.0s, 0.0s] */
2391 L4_MABX_M->Timing.perTaskSampleHits[6] =
2392 (L4_MABX_M->Timing.RateInteraction.TID0_6 == 0);
2393 (L4_MABX_M->Timing.RateInteraction.TID0_6)++;
2394 if ((L4_MABX_M->Timing.RateInteraction.TID0_6) > 99) {
2395 L4_MABX_M->Timing.RateInteraction.TID0_6 = 0;
2396 }
2397
2398 /* Update the flag to indicate when data transfers from
2399 * Sample time: [0.01s, 0.0s] to Sample time: [5.0s, 0.0s] */
2400 L4_MABX_M->Timing.perTaskSampleHits[7] =
2401 (L4_MABX_M->Timing.RateInteraction.TID0_7 == 0);
2402 (L4_MABX_M->Timing.RateInteraction.TID0_7)++;
2403 if ((L4_MABX_M->Timing.RateInteraction.TID0_7) > 499) {
2404 L4_MABX_M->Timing.RateInteraction.TID0_7 = 0;
2405 }
2406
2407 /* Outputs for Enabled SubSystem: '<S499>/AIR1' incorporates:
2408 * EnablePort: '<S500>/Enable'
2409 */
2410 /* Constant: '<S427>/Constant' */
2411 if (L4_MABX_P.Constant_Value_o0s) {
2412 /* S-Function (rti_commonblock): '<S500>/S-Function1' */
2413 /* This comment workarounds a code generation problem */
2414
2415 /* dSPACE RTICAN RX Message Block: "AIR1" Id:419343921 */
2416 {
2417 UInt32 *CAN_Msg;
2418 static dsfloat time_old = 0.0;
2419
2420 /* Read status and timestamp info (previous message) */
2421 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].timestamp !=
2422 time_old) {
2423 /* ... save timestamp info for the calculation of the RX status
2424 during the consecutive sample hit*/
2425 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].
2426 timestamp;
2427
2428 /* ... set the processed flag to one */
2429 L4_MABX_B.SFunction1_o9_b = 1.0;
2430 L4_MABX_B.SFunction1_o10_o = (real_T)
2431 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].timestamp;
2432 L4_MABX_B.SFunction1_o11_m = (real_T)
2433 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].deltatime;
2434 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].data;
2435
2436 /* Decode CAN message */
2437 {
2438 {
2439 rtican_Signal_t CAN_Sgn;
2440
2441 /* ...... "PneumaticSupplyPress" (0|8, standard signal, unsigned int, little endian) */
2442 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
2443 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2444 L4_MABX_B.SFunction1_o1_lc = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2445
2446 /* ...... "ParkingAnd_orTrailerAirPress" (8|8, standard signal, unsigned int, little endian) */
2447 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
2448 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2449 L4_MABX_B.SFunction1_o2_g0 = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2450
2451 /* ...... "ServiceBrakeCircuit1AirPress" (16|8, standard signal, unsigned int, little endian) */
2452 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
2453 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2454 L4_MABX_B.SFunction1_o3_as = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2455
2456 /* ...... "ServiceBrakeCircuit2AirPress" (24|8, standard signal, unsigned int, little endian) */
2457 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
2458 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2459 L4_MABX_B.SFunction1_o4_n3 = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2460
2461 /* ...... "AuxEquipmentSupplyPress" (32|8, standard signal, unsigned int, little endian) */
2462 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
2463 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2464 L4_MABX_B.SFunction1_o5_mt = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2465
2466 /* ...... "AirSuspensionSupplyPress" (40|8, standard signal, unsigned int, little endian) */
2467 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
2468 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2469 L4_MABX_B.SFunction1_o6_iv = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2470
2471 /* ...... "AirCompressorStatus" (48|2, standard signal, unsigned int, little endian) */
2472 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
2473 CAN_Sgn.UnsignedSgn &= 0x00000003;
2474 L4_MABX_B.SFunction1_o7_g5 = ((real_T) CAN_Sgn.UnsignedSgn);
2475
2476 /* ...... "PowertrainCircuitAirSupplyPress" (56|8, standard signal, unsigned int, little endian) */
2477 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
2478 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2479 L4_MABX_B.SFunction1_o8_fg = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2480 }
2481 }
2482 } else {
2483 /* set RX status to 0 because no new message has arrived */
2484 L4_MABX_B.SFunction1_o9_b = 0.0;
2485 }
2486 }
2487 }
2488
2489 /* End of Constant: '<S427>/Constant' */
2490 /* End of Outputs for SubSystem: '<S499>/AIR1' */
2491
2492 /* Outputs for Enabled SubSystem: '<S501>/AMB' incorporates:
2493 * EnablePort: '<S502>/Enable'
2494 */
2495 /* Constant: '<S428>/Constant' */
2496 if (L4_MABX_P.Constant_Value_cn) {
2497 /* S-Function (rti_commonblock): '<S502>/S-Function1' */
2498 /* This comment workarounds a code generation problem */
2499
2500 /* dSPACE RTICAN RX Message Block: "AMB" Id:419362048 */
2501 {
2502 UInt32 *CAN_Msg;
2503 static dsfloat time_old = 0.0;
2504
2505 /* Read status and timestamp info (previous message) */
2506 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].timestamp !=
2507 time_old) {
2508 /* ... save timestamp info for the calculation of the RX status
2509 during the consecutive sample hit*/
2510 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].
2511 timestamp;
2512
2513 /* ... set the processed flag to one */
2514 L4_MABX_B.SFunction1_o6_it = 1.0;
2515 L4_MABX_B.SFunction1_o7_lsr = (real_T)
2516 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].timestamp;
2517 L4_MABX_B.SFunction1_o8_n5 = (real_T)
2518 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].deltatime;
2519 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].data;
2520
2521 /* Decode CAN message */
2522 {
2523 {
2524 rtican_Signal_t CAN_Sgn;
2525
2526 /* ...... "BarometricPress" (0|8, standard signal, unsigned int, little endian) */
2527 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
2528 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2529 L4_MABX_B.SFunction1_o1_ih = 0.5 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2530
2531 /* ...... "CabInteriorTemp" (8|16, standard signal, unsigned int, little endian) */
2532 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
2533 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
2534 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2535 L4_MABX_B.SFunction1_o2_ov = -273 + ( 0.03125 * ( ((real_T)
2536 CAN_Sgn.UnsignedSgn) ) );
2537
2538 /* ...... "AmbientAirTemp" (24|16, standard signal, unsigned int, little endian) */
2539 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
2540 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
2541 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2542 L4_MABX_B.SFunction1_o3_oc = -273 + ( 0.03125 * ( ((real_T)
2543 CAN_Sgn.UnsignedSgn) ) );
2544
2545 /* ...... "EngAirIntakeTemp" (40|8, standard signal, unsigned int, little endian) */
2546 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
2547 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2548 L4_MABX_B.SFunction1_o4_ey = -40 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
2549
2550 /* ...... "RoadSurfaceTemp" (48|16, standard signal, unsigned int, little endian) */
2551 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
2552 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
2553 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2554 L4_MABX_B.SFunction1_o5_op = -273 + ( 0.03125 * ( ((real_T)
2555 CAN_Sgn.UnsignedSgn) ) );
2556 }
2557 }
2558 } else {
2559 /* set RX status to 0 because no new message has arrived */
2560 L4_MABX_B.SFunction1_o6_it = 0.0;
2561 }
2562 }
2563 }
2564
2565 /* End of Constant: '<S428>/Constant' */
2566 /* End of Outputs for SubSystem: '<S501>/AMB' */
2567
2568 /* Outputs for Atomic SubSystem: '<S851>/CAN_TX_1000ms' */
2569
2570 /* RateTransition: '<S871>/TmpRTBAtAIR1Inport1' */
2571 if (L4_MABX_M->Timing.RateInteraction.TID0_6 == 1) {
2572 L4_MABX_B.PneumaticSupplyPress = L4_MABX_B.SFunction1_o1_lc;
2573 L4_MABX_B.ParkingAnd_orTrailerAirPress = L4_MABX_B.SFunction1_o2_g0;
2574 L4_MABX_B.ServiceBrakeCircuit1AirPress = L4_MABX_B.SFunction1_o3_as;
2575 L4_MABX_B.ServiceBrakeCircuit2AirPress = L4_MABX_B.SFunction1_o4_n3;
2576 L4_MABX_B.AuxEquipmentSupplyPress = L4_MABX_B.SFunction1_o5_mt;
2577 L4_MABX_B.AirSuspensionSupplyPress = L4_MABX_B.SFunction1_o6_iv;
2578 L4_MABX_B.AirCompressorStatus = L4_MABX_B.SFunction1_o7_g5;
2579 L4_MABX_B.PowertrainCircuitAirSupplyPress = L4_MABX_B.SFunction1_o8_fg;
2580 L4_MABX_B.BarometricPress_b = L4_MABX_B.SFunction1_o1_ih;
2581 L4_MABX_B.CabInteriorTemp = L4_MABX_B.SFunction1_o2_ov;
2582 L4_MABX_B.AmbientAirTemp_i = L4_MABX_B.SFunction1_o3_oc;
2583 L4_MABX_B.EngAirIntakeTemp = L4_MABX_B.SFunction1_o4_ey;
2584 L4_MABX_B.RoadSurfaceTemp = L4_MABX_B.SFunction1_o5_op;
2585 }
2586
2587 /* End of Outputs for SubSystem: '<S851>/CAN_TX_1000ms' */
2588
2589 /* S-Function (rti_commonblock): '<S736>/S-Function1' */
2590 /* This comment workarounds a code generation problem */
2591
2592 /* DataTypeConversion: '<S418>/EStopSwActive' */
2593 L4_MABX_B.EStopSwActive = L4_MABX_B.SFunction1_b;
2594
2595 /* Logic: '<S418>/Logical Operator1' */
2596 EStop = !L4_MABX_B.EStopSwActive;
2597
2598 /* S-Function (rti_commonblock): '<S735>/S-Function1' */
2599 /* This comment workarounds a code generation problem */
2600
2601 /* S-Function (sfix_bitop): '<S845>/Operator' */
2602 L4_MABX_B.Operator_bj = (L4_MABX_B.SFunction1_a &&
2603 (L4_MABX_P.Operator_BitMask_dd != 0));
2604
2605 /* DataTypeConversion: '<S845>/DataType' */
2606 L4_MABX_B.DataType_eq = L4_MABX_B.Operator_bj;
2607
2608 /* Logic: '<S747>/Logical Operator' */
2609 L4_MABX_B.LogicalOperator = !L4_MABX_B.DataType_eq;
2610
2611 /* S-Function (rti_commonblock): '<S737>/S-Function1' */
2612 /* This comment workarounds a code generation problem */
2613
2614 /* S-Function (sfix_bitop): '<S846>/Operator' */
2615 L4_MABX_B.Operator_co = (L4_MABX_B.SFunction1_mk &&
2616 (L4_MABX_P.Operator_BitMask_kp != 0));
2617
2618 /* DataTypeConversion: '<S846>/DataType' */
2619 L4_MABX_B.DataType_j3 = L4_MABX_B.Operator_co;
2620
2621 /* Logic: '<S747>/AND2' */
2622 L4_MABX_B.AND2 = (L4_MABX_B.LogicalOperator && L4_MABX_B.DataType_j3);
2623
2624 /* Chart: '<S847>/Chart' */
2625 /* Gateway: DIGITAL/Signal Check/RationalityCheck/Chart */
2626 /* During: DIGITAL/Signal Check/RationalityCheck/Chart */
2627 if (L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW == 0U) {
2628 /* Entry: DIGITAL/Signal Check/RationalityCheck/Chart */
2629 L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW = 1U;
2630
2631 /* Entry Internal: DIGITAL/Signal Check/RationalityCheck/Chart */
2632 /* Transition: '<S848>:6' */
2633 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_init_o;
2634
2635 /* Entry 'init': '<S848>:1' */
2636 L4_MABX_B.DiagPassed = false;
2637 } else {
2638 switch (L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf) {
2639 case L4_MABX_IN_DiagPassed:
2640 /* During 'DiagPassed': '<S848>:4' */
2641 break;
2642
2643 case L4_MABX_IN_SwitchOff:
2644 /* During 'SwitchOff': '<S848>:2' */
2645 if (L4_MABX_B.AND2) {
2646 /* Transition: '<S848>:8' */
2647 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_DiagPassed;
2648
2649 /* Entry 'DiagPassed': '<S848>:4' */
2650 L4_MABX_B.DiagPassed = true;
2651 }
2652 break;
2653
2654 case L4_MABX_IN_SwitchOn:
2655 /* During 'SwitchOn': '<S848>:3' */
2656 if (!L4_MABX_B.AND2) {
2657 /* Transition: '<S848>:9' */
2658 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOff;
2659 }
2660 break;
2661
2662 default:
2663 /* During 'init': '<S848>:1' */
2664 if (!L4_MABX_B.AND2) {
2665 /* Transition: '<S848>:5' */
2666 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOff;
2667 } else {
2668 /* Transition: '<S848>:7' */
2669 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOn;
2670 }
2671 break;
2672 }
2673 }
2674
2675 /* End of Chart: '<S847>/Chart' */
2676
2677 /* Switch: '<S747>/Switch' incorporates:
2678 * Constant: '<S747>/OverrideOperatorEnableSW_Default'
2679 */
2680 if (L4_MABX_B.DiagPassed) {
2681 EnableSw = L4_MABX_B.AND2;
2682 } else {
2683 EnableSw = L4_MABX_P.OverrideOperatorEnableSW_Defaul;
2684 }
2685
2686 /* End of Switch: '<S747>/Switch' */
2687
2688 /* UnitDelay: '<S759>/Unit Delay' */
2689 L4_MABX_B.UnitDelay = L4_MABX_DW.UnitDelay_DSTATE;
2690
2691 /* S-Function (rti_commonblock): '<S738>/S-Function1' */
2692 /* This comment workarounds a code generation problem */
2693
2694 /* DataTypeConversion: '<S418>/StartPBActive' */
2695 L4_MABX_B.StartPBActive = L4_MABX_B.SFunction1_m1;
2696
2697 /* Logic: '<S418>/Logical Operator' */
2698 L4_MABX_B.LogicalOperator_n = !L4_MABX_B.StartPBActive;
2699
2700 /* RelationalOperator: '<S761>/Compare' incorporates:
2701 * Constant: '<S761>/Constant'
2702 */
2703 L4_MABX_B.Compare = ((int32_T)L4_MABX_B.LogicalOperator_n > (int32_T)
2704 L4_MABX_P.Constant_Value_l4);
2705
2706 /* UnitDelay: '<S757>/Delay Input1' */
2707 L4_MABX_B.Uk1_c = L4_MABX_DW.DelayInput1_DSTATE_p;
2708
2709 /* RelationalOperator: '<S757>/FixPt Relational Operator' */
2710 L4_MABX_B.FixPtRelationalOperator = ((int32_T)L4_MABX_B.Compare > (int32_T)
2711 L4_MABX_B.Uk1_c);
2712
2713 /* UnitDelay: '<S758>/Unit Delay' */
2714 L4_MABX_B.UnitDelay_e = L4_MABX_DW.UnitDelay_DSTATE_e;
2715
2716 /* UnitDelay: '<S745>/Unit Delay' */
2717 L4_MABX_B.UnitDelay_dh = L4_MABX_DW.UnitDelay_DSTATE_be;
2718
2719 /* RelationalOperator: '<S760>/Compare' incorporates:
2720 * Constant: '<S760>/Constant'
2721 */
2722 L4_MABX_B.Compare_o = ((int32_T)L4_MABX_B.UnitDelay_dh <= (int32_T)
2723 L4_MABX_P.Constant_Value_fe);
2724
2725 /* UnitDelay: '<S756>/Delay Input1' */
2726 L4_MABX_B.Uk1_mp = L4_MABX_DW.DelayInput1_DSTATE_m;
2727
2728 /* RelationalOperator: '<S756>/FixPt Relational Operator' */
2729 L4_MABX_B.FixPtRelationalOperator_b = ((int32_T)L4_MABX_B.Compare_o > (int32_T)
2730 L4_MABX_B.Uk1_mp);
2731
2732 /* UnitDelay: '<S758>/Unit Delay1' */
2733 L4_MABX_B.UnitDelay1_d = L4_MABX_DW.UnitDelay1_DSTATE_g;
2734
2735 /* Logic: '<S758>/OR1' */
2736 L4_MABX_B.OR1 = (L4_MABX_B.FixPtRelationalOperator_b || L4_MABX_B.UnitDelay1_d);
2737
2738 /* Switch: '<S758>/Switch' incorporates:
2739 * Constant: '<S758>/Constant0'
2740 */
2741 if (L4_MABX_B.OR1) {
2742 /* Sum: '<S758>/Sum' incorporates:
2743 * Constant: '<S758>/Constant1'
2744 */
2745 L4_MABX_B.Sum_h = L4_MABX_B.UnitDelay_e + L4_MABX_P.Constant1_Value_lp;
2746 L4_MABX_B.Switch = L4_MABX_B.Sum_h;
2747 } else {
2748 L4_MABX_B.Switch = L4_MABX_P.Constant0_Value_g;
2749 }
2750
2751 /* End of Switch: '<S758>/Switch' */
2752
2753 /* RelationalOperator: '<S762>/Compare' incorporates:
2754 * Constant: '<S762>/Constant'
2755 */
2756 L4_MABX_B.Compare_c = (L4_MABX_B.Switch > L4_MABX_P.Constant_Value_m);
2757
2758 /* Gain: '<S758>/Gain' incorporates:
2759 * Constant: '<S418>/Constant3'
2760 */
2761 L4_MABX_B.Gain = L4_MABX_P.Gain_Gain_jc * L4_MABX_P.Constant3_Value_po;
2762
2763 /* RelationalOperator: '<S758>/LessThanOrEqual' */
2764 L4_MABX_B.LessThanOrEqual = (L4_MABX_B.Switch <= L4_MABX_B.Gain);
2765
2766 /* Logic: '<S758>/AND' */
2767 L4_MABX_B.AND = (L4_MABX_B.Compare_c && L4_MABX_B.LessThanOrEqual);
2768
2769 /* Logic: '<S745>/NOT' */
2770 L4_MABX_B.NOT = !L4_MABX_B.AND;
2771
2772 /* Logic: '<S745>/AND' */
2773 L4_MABX_B.AND_b = (L4_MABX_B.FixPtRelationalOperator && L4_MABX_B.NOT);
2774
2775 /* UnitDelay: '<S759>/Unit Delay1' */
2776 L4_MABX_B.UnitDelay1_h = L4_MABX_DW.UnitDelay1_DSTATE_gp;
2777
2778 /* Logic: '<S759>/OR1' */
2779 L4_MABX_B.OR1_m = (L4_MABX_B.AND_b || L4_MABX_B.UnitDelay1_h);
2780
2781 /* Switch: '<S759>/Switch' incorporates:
2782 * Constant: '<S759>/Constant0'
2783 */
2784 if (L4_MABX_B.OR1_m) {
2785 /* Sum: '<S759>/Sum' incorporates:
2786 * Constant: '<S759>/Constant1'
2787 */
2788 L4_MABX_B.Sum = L4_MABX_B.UnitDelay + L4_MABX_P.Constant1_Value_mj;
2789 L4_MABX_B.Switch_o = L4_MABX_B.Sum;
2790 } else {
2791 L4_MABX_B.Switch_o = L4_MABX_P.Constant0_Value_lq;
2792 }
2793
2794 /* End of Switch: '<S759>/Switch' */
2795
2796 /* RelationalOperator: '<S763>/Compare' incorporates:
2797 * Constant: '<S763>/Constant'
2798 */
2799 L4_MABX_B.Compare_ox = (L4_MABX_B.Switch_o > L4_MABX_P.Constant_Value_ida);
2800
2801 /* Gain: '<S759>/Gain' incorporates:
2802 * Constant: '<S418>/Constant2'
2803 */
2804 L4_MABX_B.Gain_h = L4_MABX_P.Gain_Gain_nv * L4_MABX_P.Constant2_Value_e;
2805
2806 /* RelationalOperator: '<S759>/LessThanOrEqual' */
2807 L4_MABX_B.LessThanOrEqual_k = (L4_MABX_B.Switch_o <= L4_MABX_B.Gain_h);
2808
2809 /* Logic: '<S759>/AND' */
2810 L4_MABX_B.AND_a = (L4_MABX_B.Compare_ox && L4_MABX_B.LessThanOrEqual_k);
2811
2812 /* Logic: '<S745>/AND2' */
2813 EngagePB = (L4_MABX_B.AND_a && L4_MABX_B.NOT);
2814
2815 /* S-Function (rti_commonblock): '<S740>/S-Function1' */
2816 /* This comment workarounds a code generation problem */
2817
2818 /* DataTypeConversion: '<S418>/StartPBActive1' */
2819 L4_MABX_B.StartPBActive1 = L4_MABX_B.SFunction1_l;
2820
2821 /* Logic: '<S418>/Logical Operator3' */
2822 BrakeSW = !L4_MABX_B.StartPBActive1;
2823
2824 /* S-Function (rti_commonblock): '<S742>/S-Function1' */
2825 /* This comment workarounds a code generation problem */
2826
2827 /* DataTypeConversion: '<S418>/Data Type Conversion2' */
2828 L4_MABX_B.Pedal_1_pwm_freq_raw_value = L4_MABX_B.SFunction1_o1;
2829
2830 /* RelationalOperator: '<S793>/min_relop' incorporates:
2831 * Constant: '<S765>/PWMAFreqRngMin'
2832 */
2833 L4_MABX_B.min_relop = (L4_MABX_P.PWMAFreqRngMin_Value <
2834 L4_MABX_B.Pedal_1_pwm_freq_raw_value);
2835
2836 /* RelationalOperator: '<S793>/max_relop' incorporates:
2837 * Constant: '<S765>/PWMAFreqRngMax'
2838 */
2839 L4_MABX_B.max_relop = (L4_MABX_B.Pedal_1_pwm_freq_raw_value <
2840 L4_MABX_P.PWMAFreqRngMax_Value);
2841
2842 /* Logic: '<S793>/conjunction' */
2843 L4_MABX_B.conjunction = (L4_MABX_B.min_relop && L4_MABX_B.max_relop);
2844
2845 /* UnitDelay: '<S798>/FixPt Unit Delay2' */
2846 L4_MABX_B.FixPtUnitDelay2 = L4_MABX_DW.FixPtUnitDelay2_DSTATE;
2847
2848 /* UnitDelay: '<S798>/FixPt Unit Delay1' */
2849 L4_MABX_B.Xold = L4_MABX_DW.FixPtUnitDelay1_DSTATE;
2850
2851 /* Switch: '<S798>/Init' incorporates:
2852 * Constant: '<S765>/PWMAFreqRngFaultLimMin'
2853 */
2854 if (L4_MABX_B.FixPtUnitDelay2 != 0) {
2855 L4_MABX_B.Init = L4_MABX_P.PWMAFreqRngFaultLimMin_Value;
2856 } else {
2857 L4_MABX_B.Init = L4_MABX_B.Xold;
2858 }
2859
2860 /* End of Switch: '<S798>/Init' */
2861
2862 /* Sum: '<S794>/FixPt Sum1' incorporates:
2863 * Constant: '<S794>/FixPt Constant'
2864 */
2865 L4_MABX_B.FixPtSum1 = L4_MABX_B.Init - L4_MABX_P.FixPtConstant_Value_b;
2866
2867 /* Sum: '<S797>/FixPt Sum1' incorporates:
2868 * Constant: '<S797>/FixPt Constant'
2869 */
2870 L4_MABX_B.FixPtSum1_c = L4_MABX_B.Init + L4_MABX_P.FixPtConstant_Value_p;
2871
2872 /* Outputs for Atomic SubSystem: '<S781>/If_Then_Else3' */
2873 L4_MABX_If_Then_Else(L4_MABX_B.conjunction, L4_MABX_B.FixPtSum1,
2874 L4_MABX_B.FixPtSum1_c, &L4_MABX_B.If_Then_Else3_l);
2875
2876 /* End of Outputs for SubSystem: '<S781>/If_Then_Else3' */
2877
2878 /* RelationalOperator: '<S795>/Relational Operator1' incorporates:
2879 * Constant: '<S765>/PWMAFreqRngFaultLimMax'
2880 */
2881 L4_MABX_B.RelationalOperator1 = (L4_MABX_B.If_Then_Else3_l.Switch >=
2882 L4_MABX_P.PWMAFreqRngFaultLimMax_Value);
2883
2884 /* RelationalOperator: '<S795>/Relational Operator' incorporates:
2885 * Constant: '<S765>/PWMAFreqRngFaultLimMin'
2886 */
2887 L4_MABX_B.RelationalOperator = (L4_MABX_B.If_Then_Else3_l.Switch <=
2888 L4_MABX_P.PWMAFreqRngFaultLimMin_Value);
2889
2890 /* Outputs for Atomic SubSystem: '<S795>/If_Then_Else1' */
2891
2892 /* Constant: '<S765>/PWMAFreqRngFaultLimMin' */
2893 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator,
2894 L4_MABX_P.PWMAFreqRngFaultLimMin_Value,
2895 L4_MABX_B.If_Then_Else3_l.Switch,
2896 &L4_MABX_B.If_Then_Else1_ef);
2897
2898 /* End of Outputs for SubSystem: '<S795>/If_Then_Else1' */
2899
2900 /* Outputs for Atomic SubSystem: '<S795>/If_Then_Else' */
2901
2902 /* Constant: '<S765>/PWMAFreqRngFaultLimMax' */
2903 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1,
2904 L4_MABX_P.PWMAFreqRngFaultLimMax_Value,
2905 L4_MABX_B.If_Then_Else1_ef.Switch,
2906 &L4_MABX_B.If_Then_Else_pu);
2907
2908 /* End of Outputs for SubSystem: '<S795>/If_Then_Else' */
2909
2910 /* RelationalOperator: '<S781>/Relational Operator9' incorporates:
2911 * Constant: '<S765>/PWMAFreqRngFaultLimMin'
2912 */
2913 L4_MABX_B.F_Fault_Soft = (L4_MABX_B.If_Then_Else_pu.Switch !=
2914 L4_MABX_P.PWMAFreqRngFaultLimMin_Value);
2915
2916 /* Gain: '<S418>/Gain' */
2917 L4_MABX_B.Gain_k = L4_MABX_P.Gain_Gain_b * L4_MABX_B.SFunction1_o2;
2918
2919 /* DataTypeConversion: '<S418>/Data Type Conversion9' */
2920 L4_MABX_B.Pedal_1_pwm_dc_raw_value = L4_MABX_B.Gain_k;
2921
2922 /* RelationalOperator: '<S785>/min_relop' incorporates:
2923 * Constant: '<S765>/PWMADCRngMin'
2924 */
2925 L4_MABX_B.min_relop_a = (L4_MABX_P.PWMADCRngMin_Value <
2926 L4_MABX_B.Pedal_1_pwm_dc_raw_value);
2927
2928 /* RelationalOperator: '<S785>/max_relop' incorporates:
2929 * Constant: '<S765>/PWMADCRngMax'
2930 */
2931 L4_MABX_B.max_relop_e = (L4_MABX_B.Pedal_1_pwm_dc_raw_value <
2932 L4_MABX_P.PWMADCRngMax_Value);
2933
2934 /* Logic: '<S785>/conjunction' */
2935 L4_MABX_B.conjunction_l = (L4_MABX_B.min_relop_a && L4_MABX_B.max_relop_e);
2936
2937 /* UnitDelay: '<S790>/FixPt Unit Delay2' */
2938 L4_MABX_B.FixPtUnitDelay2_o = L4_MABX_DW.FixPtUnitDelay2_DSTATE_m;
2939
2940 /* UnitDelay: '<S790>/FixPt Unit Delay1' */
2941 L4_MABX_B.Xold_k = L4_MABX_DW.FixPtUnitDelay1_DSTATE_c;
2942
2943 /* Switch: '<S790>/Init' incorporates:
2944 * Constant: '<S765>/PWMADCRngFaultLimMin'
2945 */
2946 if (L4_MABX_B.FixPtUnitDelay2_o != 0) {
2947 L4_MABX_B.Init_j = L4_MABX_P.PWMADCRngFaultLimMin_Value;
2948 } else {
2949 L4_MABX_B.Init_j = L4_MABX_B.Xold_k;
2950 }
2951
2952 /* End of Switch: '<S790>/Init' */
2953
2954 /* Sum: '<S786>/FixPt Sum1' incorporates:
2955 * Constant: '<S786>/FixPt Constant'
2956 */
2957 L4_MABX_B.FixPtSum1_p = L4_MABX_B.Init_j - L4_MABX_P.FixPtConstant_Value_i;
2958
2959 /* Sum: '<S789>/FixPt Sum1' incorporates:
2960 * Constant: '<S789>/FixPt Constant'
2961 */
2962 L4_MABX_B.FixPtSum1_f = L4_MABX_B.Init_j + L4_MABX_P.FixPtConstant_Value_iv;
2963
2964 /* Outputs for Atomic SubSystem: '<S780>/If_Then_Else3' */
2965 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_l, L4_MABX_B.FixPtSum1_p,
2966 L4_MABX_B.FixPtSum1_f, &L4_MABX_B.If_Then_Else3);
2967
2968 /* End of Outputs for SubSystem: '<S780>/If_Then_Else3' */
2969
2970 /* RelationalOperator: '<S787>/Relational Operator1' incorporates:
2971 * Constant: '<S765>/PWMADCRngFaultLimMax'
2972 */
2973 L4_MABX_B.RelationalOperator1_m = (L4_MABX_B.If_Then_Else3.Switch >=
2974 L4_MABX_P.PWMADCRngFaultLimMax_Value);
2975
2976 /* RelationalOperator: '<S787>/Relational Operator' incorporates:
2977 * Constant: '<S765>/PWMADCRngFaultLimMin'
2978 */
2979 L4_MABX_B.RelationalOperator_a = (L4_MABX_B.If_Then_Else3.Switch <=
2980 L4_MABX_P.PWMADCRngFaultLimMin_Value);
2981
2982 /* Outputs for Atomic SubSystem: '<S787>/If_Then_Else1' */
2983
2984 /* Constant: '<S765>/PWMADCRngFaultLimMin' */
2985 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_a,
2986 L4_MABX_P.PWMADCRngFaultLimMin_Value,
2987 L4_MABX_B.If_Then_Else3.Switch,
2988 &L4_MABX_B.If_Then_Else1_e);
2989
2990 /* End of Outputs for SubSystem: '<S787>/If_Then_Else1' */
2991
2992 /* Outputs for Atomic SubSystem: '<S787>/If_Then_Else' */
2993
2994 /* Constant: '<S765>/PWMADCRngFaultLimMax' */
2995 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_m,
2996 L4_MABX_P.PWMADCRngFaultLimMax_Value,
2997 L4_MABX_B.If_Then_Else1_e.Switch,
2998 &L4_MABX_B.If_Then_Else_c);
2999
3000 /* End of Outputs for SubSystem: '<S787>/If_Then_Else' */
3001
3002 /* RelationalOperator: '<S780>/Relational Operator9' incorporates:
3003 * Constant: '<S765>/PWMADCRngFaultLimMin'
3004 */
3005 L4_MABX_B.F_Fault_Soft_b = (L4_MABX_B.If_Then_Else_c.Switch !=
3006 L4_MABX_P.PWMADCRngFaultLimMin_Value);
3007
3008 /* Logic: '<S765>/Logical Operator2' */
3009 L4_MABX_B.LogicalOperator2 = (L4_MABX_B.F_Fault_Soft ||
3010 L4_MABX_B.F_Fault_Soft_b);
3011
3012 /* RelationalOperator: '<S781>/Relational Operator8' incorporates:
3013 * Constant: '<S765>/PWMAFreqRngFaultLimMax'
3014 */
3015 L4_MABX_B.F_Fault_Hard = (L4_MABX_P.PWMAFreqRngFaultLimMax_Value <=
3016 L4_MABX_B.If_Then_Else_pu.Switch);
3017
3018 /* RelationalOperator: '<S780>/Relational Operator8' incorporates:
3019 * Constant: '<S765>/PWMADCRngFaultLimMax'
3020 */
3021 L4_MABX_B.F_Fault_Hard_m = (L4_MABX_P.PWMADCRngFaultLimMax_Value <=
3022 L4_MABX_B.If_Then_Else_c.Switch);
3023
3024 /* Logic: '<S765>/Logical Operator1' */
3025 L4_MABX_B.LogicalOperator1 = (L4_MABX_B.F_Fault_Hard ||
3026 L4_MABX_B.F_Fault_Hard_m);
3027
3028 /* Chart: '<S765>/Health State Machine PWM Sensor 1' */
3029 /* Gateway: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
3030 /* During: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
3031 if (L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW == 0U) {
3032 /* Entry: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
3033 L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW = 1U;
3034
3035 /* Entry Internal: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
3036 /* Transition: '<S778>:2' */
3037 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_FAILURE;
3038
3039 /* Entry 'NO_FAILURE': '<S778>:1' */
3040 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3041 } else if (L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf ==
3042 L4_MABX_IN_FAILURE_DETECTED) {
3043 /* During 'FAILURE_DETECTED': '<S778>:6' */
3044 if (L4_MABX_DW.is_FAILURE_DETECTED_f == L4_MABX_IN_ERROR) {
3045 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
3046
3047 /* During 'ERROR': '<S778>:8' */
3048 if (!L4_MABX_B.LogicalOperator1) {
3049 /* Transition: '<S778>:17' */
3050 L4_MABX_DW.is_FAILURE_DETECTED_f = L4_MABX_IN_PENDING;
3051
3052 /* Entry 'PENDING': '<S778>:7' */
3053 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3054 }
3055 } else {
3056 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3057
3058 /* During 'PENDING': '<S778>:7' */
3059 zcEvent = ((!L4_MABX_B.LogicalOperator2) && (!L4_MABX_B.LogicalOperator1));
3060 if (zcEvent) {
3061 /* Transition: '<S778>:9' */
3062 L4_MABX_DW.is_FAILURE_DETECTED_f = L4_MABX_IN_NO_ACTIVE_CHILD;
3063 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_FAILURE;
3064
3065 /* Entry 'NO_FAILURE': '<S778>:1' */
3066 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3067 } else {
3068 if (L4_MABX_B.LogicalOperator1) {
3069 /* Transition: '<S778>:12' */
3070 L4_MABX_DW.is_FAILURE_DETECTED_f = L4_MABX_IN_ERROR;
3071
3072 /* Entry 'ERROR': '<S778>:8' */
3073 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
3074 }
3075 }
3076 }
3077 } else {
3078 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3079
3080 /* During 'NO_FAILURE': '<S778>:1' */
3081 zcEvent = (L4_MABX_B.LogicalOperator2 || L4_MABX_B.LogicalOperator1);
3082 if (zcEvent) {
3083 /* Transition: '<S778>:10' */
3084 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_FAILURE_DETECTED;
3085
3086 /* Entry 'FAILURE_DETECTED': '<S778>:6' */
3087 /* Entry Internal 'FAILURE_DETECTED': '<S778>:6' */
3088 /* Transition: '<S778>:11' */
3089 L4_MABX_DW.is_FAILURE_DETECTED_f = L4_MABX_IN_PENDING;
3090
3091 /* Entry 'PENDING': '<S778>:7' */
3092 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3093 }
3094 }
3095
3096 /* End of Chart: '<S765>/Health State Machine PWM Sensor 1' */
3097
3098 /* RelationalOperator: '<S776>/Compare' incorporates:
3099 * Constant: '<S776>/Constant'
3100 */
3101 L4_MABX_B.Compare_b = (L4_MABX_B.Pedal_1_pwm_health_state ==
3102 L4_MABX_P.CompareToConstant_const_cr);
3103
3104 /* S-Function (rti_commonblock): '<S743>/S-Function1' */
3105 /* This comment workarounds a code generation problem */
3106
3107 /* DataTypeConversion: '<S418>/Data Type Conversion3' */
3108 L4_MABX_B.Pedal_2_pwm_freq_raw_value = L4_MABX_B.SFunction1_o1_m;
3109
3110 /* RelationalOperator: '<S809>/min_relop' incorporates:
3111 * Constant: '<S765>/PWMBFreqRngMin1'
3112 */
3113 L4_MABX_B.min_relop_aj = (L4_MABX_P.PWMBFreqRngMin1_Value <
3114 L4_MABX_B.Pedal_2_pwm_freq_raw_value);
3115
3116 /* RelationalOperator: '<S809>/max_relop' incorporates:
3117 * Constant: '<S765>/PWMBFreqRngMax1'
3118 */
3119 L4_MABX_B.max_relop_f = (L4_MABX_B.Pedal_2_pwm_freq_raw_value <
3120 L4_MABX_P.PWMBFreqRngMax1_Value);
3121
3122 /* Logic: '<S809>/conjunction' */
3123 L4_MABX_B.conjunction_c = (L4_MABX_B.min_relop_aj && L4_MABX_B.max_relop_f);
3124
3125 /* UnitDelay: '<S814>/FixPt Unit Delay2' */
3126 L4_MABX_B.FixPtUnitDelay2_i = L4_MABX_DW.FixPtUnitDelay2_DSTATE_o;
3127
3128 /* UnitDelay: '<S814>/FixPt Unit Delay1' */
3129 L4_MABX_B.Xold_d = L4_MABX_DW.FixPtUnitDelay1_DSTATE_p;
3130
3131 /* Switch: '<S814>/Init' incorporates:
3132 * Constant: '<S765>/PWMBFreqRngFaultLimMin1'
3133 */
3134 if (L4_MABX_B.FixPtUnitDelay2_i != 0) {
3135 L4_MABX_B.Init_i = L4_MABX_P.PWMBFreqRngFaultLimMin1_Value;
3136 } else {
3137 L4_MABX_B.Init_i = L4_MABX_B.Xold_d;
3138 }
3139
3140 /* End of Switch: '<S814>/Init' */
3141
3142 /* Sum: '<S810>/FixPt Sum1' incorporates:
3143 * Constant: '<S810>/FixPt Constant'
3144 */
3145 L4_MABX_B.FixPtSum1_d = L4_MABX_B.Init_i - L4_MABX_P.FixPtConstant_Value_e;
3146
3147 /* Sum: '<S813>/FixPt Sum1' incorporates:
3148 * Constant: '<S813>/FixPt Constant'
3149 */
3150 L4_MABX_B.FixPtSum1_b = L4_MABX_B.Init_i + L4_MABX_P.FixPtConstant_Value_k;
3151
3152 /* Outputs for Atomic SubSystem: '<S783>/If_Then_Else3' */
3153 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_c, L4_MABX_B.FixPtSum1_d,
3154 L4_MABX_B.FixPtSum1_b, &L4_MABX_B.If_Then_Else3_lr);
3155
3156 /* End of Outputs for SubSystem: '<S783>/If_Then_Else3' */
3157
3158 /* RelationalOperator: '<S811>/Relational Operator1' incorporates:
3159 * Constant: '<S765>/PWMBFreqRngFaultLimMax1'
3160 */
3161 L4_MABX_B.RelationalOperator1_o = (L4_MABX_B.If_Then_Else3_lr.Switch >=
3162 L4_MABX_P.PWMBFreqRngFaultLimMax1_Value);
3163
3164 /* RelationalOperator: '<S811>/Relational Operator' incorporates:
3165 * Constant: '<S765>/PWMBFreqRngFaultLimMin1'
3166 */
3167 L4_MABX_B.RelationalOperator_f = (L4_MABX_B.If_Then_Else3_lr.Switch <=
3168 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value);
3169
3170 /* Outputs for Atomic SubSystem: '<S811>/If_Then_Else1' */
3171
3172 /* Constant: '<S765>/PWMBFreqRngFaultLimMin1' */
3173 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_f,
3174 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value,
3175 L4_MABX_B.If_Then_Else3_lr.Switch,
3176 &L4_MABX_B.If_Then_Else1_kj);
3177
3178 /* End of Outputs for SubSystem: '<S811>/If_Then_Else1' */
3179
3180 /* Outputs for Atomic SubSystem: '<S811>/If_Then_Else' */
3181
3182 /* Constant: '<S765>/PWMBFreqRngFaultLimMax1' */
3183 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_o,
3184 L4_MABX_P.PWMBFreqRngFaultLimMax1_Value,
3185 L4_MABX_B.If_Then_Else1_kj.Switch,
3186 &L4_MABX_B.If_Then_Else_n);
3187
3188 /* End of Outputs for SubSystem: '<S811>/If_Then_Else' */
3189
3190 /* RelationalOperator: '<S783>/Relational Operator9' incorporates:
3191 * Constant: '<S765>/PWMBFreqRngFaultLimMin1'
3192 */
3193 L4_MABX_B.F_Fault_Soft_o = (L4_MABX_B.If_Then_Else_n.Switch !=
3194 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value);
3195
3196 /* Gain: '<S418>/Gain1' */
3197 L4_MABX_B.Gain1 = L4_MABX_P.Gain1_Gain_os * L4_MABX_B.SFunction1_o2_m;
3198
3199 /* DataTypeConversion: '<S418>/Data Type Conversion1' */
3200 L4_MABX_B.Pedal_2_pwm_dc_raw_value = L4_MABX_B.Gain1;
3201
3202 /* RelationalOperator: '<S801>/min_relop' incorporates:
3203 * Constant: '<S765>/PWMBDCRngMin1'
3204 */
3205 L4_MABX_B.min_relop_n = (L4_MABX_P.PWMBDCRngMin1_Value <
3206 L4_MABX_B.Pedal_2_pwm_dc_raw_value);
3207
3208 /* RelationalOperator: '<S801>/max_relop' incorporates:
3209 * Constant: '<S765>/PWMBDCRngMax1'
3210 */
3211 L4_MABX_B.max_relop_m = (L4_MABX_B.Pedal_2_pwm_dc_raw_value <
3212 L4_MABX_P.PWMBDCRngMax1_Value);
3213
3214 /* Logic: '<S801>/conjunction' */
3215 L4_MABX_B.conjunction_p = (L4_MABX_B.min_relop_n && L4_MABX_B.max_relop_m);
3216
3217 /* UnitDelay: '<S806>/FixPt Unit Delay2' */
3218 L4_MABX_B.FixPtUnitDelay2_d = L4_MABX_DW.FixPtUnitDelay2_DSTATE_og;
3219
3220 /* UnitDelay: '<S806>/FixPt Unit Delay1' */
3221 L4_MABX_B.Xold_m = L4_MABX_DW.FixPtUnitDelay1_DSTATE_j;
3222
3223 /* Switch: '<S806>/Init' incorporates:
3224 * Constant: '<S765>/PWMBDCRngFaultLimMin1'
3225 */
3226 if (L4_MABX_B.FixPtUnitDelay2_d != 0) {
3227 L4_MABX_B.Init_d = L4_MABX_P.PWMBDCRngFaultLimMin1_Value;
3228 } else {
3229 L4_MABX_B.Init_d = L4_MABX_B.Xold_m;
3230 }
3231
3232 /* End of Switch: '<S806>/Init' */
3233
3234 /* Sum: '<S802>/FixPt Sum1' incorporates:
3235 * Constant: '<S802>/FixPt Constant'
3236 */
3237 L4_MABX_B.FixPtSum1_m = L4_MABX_B.Init_d - L4_MABX_P.FixPtConstant_Value_c;
3238
3239 /* Sum: '<S805>/FixPt Sum1' incorporates:
3240 * Constant: '<S805>/FixPt Constant'
3241 */
3242 L4_MABX_B.FixPtSum1_a = L4_MABX_B.Init_d + L4_MABX_P.FixPtConstant_Value_ck;
3243
3244 /* Outputs for Atomic SubSystem: '<S782>/If_Then_Else3' */
3245 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_p, L4_MABX_B.FixPtSum1_m,
3246 L4_MABX_B.FixPtSum1_a, &L4_MABX_B.If_Then_Else3_f);
3247
3248 /* End of Outputs for SubSystem: '<S782>/If_Then_Else3' */
3249
3250 /* RelationalOperator: '<S803>/Relational Operator1' incorporates:
3251 * Constant: '<S765>/PWMBDCRngFaultLimMax1'
3252 */
3253 L4_MABX_B.RelationalOperator1_mk = (L4_MABX_B.If_Then_Else3_f.Switch >=
3254 L4_MABX_P.PWMBDCRngFaultLimMax1_Value);
3255
3256 /* RelationalOperator: '<S803>/Relational Operator' incorporates:
3257 * Constant: '<S765>/PWMBDCRngFaultLimMin1'
3258 */
3259 L4_MABX_B.RelationalOperator_h = (L4_MABX_B.If_Then_Else3_f.Switch <=
3260 L4_MABX_P.PWMBDCRngFaultLimMin1_Value);
3261
3262 /* Outputs for Atomic SubSystem: '<S803>/If_Then_Else1' */
3263
3264 /* Constant: '<S765>/PWMBDCRngFaultLimMin1' */
3265 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_h,
3266 L4_MABX_P.PWMBDCRngFaultLimMin1_Value,
3267 L4_MABX_B.If_Then_Else3_f.Switch,
3268 &L4_MABX_B.If_Then_Else1_k);
3269
3270 /* End of Outputs for SubSystem: '<S803>/If_Then_Else1' */
3271
3272 /* Outputs for Atomic SubSystem: '<S803>/If_Then_Else' */
3273
3274 /* Constant: '<S765>/PWMBDCRngFaultLimMax1' */
3275 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_mk,
3276 L4_MABX_P.PWMBDCRngFaultLimMax1_Value,
3277 L4_MABX_B.If_Then_Else1_k.Switch,
3278 &L4_MABX_B.If_Then_Else_h);
3279
3280 /* End of Outputs for SubSystem: '<S803>/If_Then_Else' */
3281
3282 /* RelationalOperator: '<S782>/Relational Operator9' incorporates:
3283 * Constant: '<S765>/PWMBDCRngFaultLimMin1'
3284 */
3285 L4_MABX_B.F_Fault_Soft_h = (L4_MABX_B.If_Then_Else_h.Switch !=
3286 L4_MABX_P.PWMBDCRngFaultLimMin1_Value);
3287
3288 /* Logic: '<S765>/Logical Operator4' */
3289 L4_MABX_B.LogicalOperator4 = (L4_MABX_B.F_Fault_Soft_o ||
3290 L4_MABX_B.F_Fault_Soft_h);
3291
3292 /* RelationalOperator: '<S783>/Relational Operator8' incorporates:
3293 * Constant: '<S765>/PWMBFreqRngFaultLimMax1'
3294 */
3295 L4_MABX_B.F_Fault_Hard_g = (L4_MABX_P.PWMBFreqRngFaultLimMax1_Value <=
3296 L4_MABX_B.If_Then_Else_n.Switch);
3297
3298 /* RelationalOperator: '<S782>/Relational Operator8' incorporates:
3299 * Constant: '<S765>/PWMBDCRngFaultLimMax1'
3300 */
3301 L4_MABX_B.F_Fault_Hard_d = (L4_MABX_P.PWMBDCRngFaultLimMax1_Value <=
3302 L4_MABX_B.If_Then_Else_h.Switch);
3303
3304 /* Logic: '<S765>/Logical Operator3' */
3305 L4_MABX_B.LogicalOperator3 = (L4_MABX_B.F_Fault_Hard_g ||
3306 L4_MABX_B.F_Fault_Hard_d);
3307
3308 /* Chart: '<S765>/Health State Machine PWM Sensor 2' */
3309 /* Gateway: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3310 /* During: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3311 if (L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H == 0U) {
3312 /* Entry: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3313 L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H = 1U;
3314
3315 /* Entry Internal: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3316 /* Transition: '<S779>:2' */
3317 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_FAILURE;
3318
3319 /* Entry 'NO_FAILURE': '<S779>:1' */
3320 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3321 } else if (L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter ==
3322 L4_MABX_IN_FAILURE_DETECTED) {
3323 /* During 'FAILURE_DETECTED': '<S779>:6' */
3324 if (L4_MABX_DW.is_FAILURE_DETECTED == L4_MABX_IN_ERROR) {
3325 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
3326
3327 /* During 'ERROR': '<S779>:8' */
3328 if (!L4_MABX_B.LogicalOperator3) {
3329 /* Transition: '<S779>:20' */
3330 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_PENDING;
3331
3332 /* Entry 'PENDING': '<S779>:7' */
3333 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3334 }
3335 } else {
3336 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3337
3338 /* During 'PENDING': '<S779>:7' */
3339 zcEvent = ((!L4_MABX_B.LogicalOperator4) && (!L4_MABX_B.LogicalOperator3));
3340 if (zcEvent) {
3341 /* Transition: '<S779>:9' */
3342 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_NO_ACTIVE_CHILD;
3343 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_FAILURE;
3344
3345 /* Entry 'NO_FAILURE': '<S779>:1' */
3346 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3347 } else {
3348 if (L4_MABX_B.LogicalOperator3) {
3349 /* Transition: '<S779>:12' */
3350 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_ERROR;
3351
3352 /* Entry 'ERROR': '<S779>:8' */
3353 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
3354 }
3355 }
3356 }
3357 } else {
3358 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3359
3360 /* During 'NO_FAILURE': '<S779>:1' */
3361 zcEvent = (L4_MABX_B.LogicalOperator4 || L4_MABX_B.LogicalOperator3);
3362 if (zcEvent) {
3363 /* Transition: '<S779>:10' */
3364 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_FAILURE_DETECTED;
3365
3366 /* Entry 'FAILURE_DETECTED': '<S779>:6' */
3367 /* Entry Internal 'FAILURE_DETECTED': '<S779>:6' */
3368 /* Transition: '<S779>:11' */
3369 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_PENDING;
3370
3371 /* Entry 'PENDING': '<S779>:7' */
3372 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3373 }
3374 }
3375
3376 /* End of Chart: '<S765>/Health State Machine PWM Sensor 2' */
3377
3378 /* RelationalOperator: '<S777>/Compare' incorporates:
3379 * Constant: '<S777>/Constant'
3380 */
3381 L4_MABX_B.Compare_l = (L4_MABX_B.Pedal_2_pwm_health_state ==
3382 L4_MABX_P.CompareToConstant2_const_b);
3383
3384 /* Logic: '<S765>/Logical Operator5' */
3385 L4_MABX_B.F_Pedal_pwm_sens_total_failure = (L4_MABX_B.Compare_b &&
3386 L4_MABX_B.Compare_l);
3387
3388 /* UnitDelay: '<S768>/Unit_Delay' */
3389 L4_MABX_B.Unit_Delay_f5 = L4_MABX_DW.Unit_Delay_DSTATE_k;
3390
3391 /* UnitDelay: '<S835>/Unit_Delay1' */
3392 L4_MABX_B.Unit_Delay1 = L4_MABX_DW.Unit_Delay1_DSTATE;
3393
3394 /* Logic: '<S835>/Logical Operator' */
3395 L4_MABX_B.LogicalOperator_g = (L4_MABX_B.Unit_Delay_f5 ||
3396 L4_MABX_B.Unit_Delay1);
3397
3398 /* MinMax: '<S835>/MinMax1' incorporates:
3399 * Constant: '<S768>/PEDAL_PWM_SENSOR_DATA_APV.T1_CONST'
3400 * Constant: '<S768>/dT'
3401 */
3402 DeltaTime = L4_MABX_P.dT_Value;
3403 PositionFinalLimited = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVT1_CON;
3404 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3405 PositionFinalLimited = DeltaTime;
3406 }
3407
3408 L4_MABX_B.MinMax1 = PositionFinalLimited;
3409
3410 /* End of MinMax: '<S835>/MinMax1' */
3411
3412 /* Saturate: '<S835>/Saturation' */
3413 DeltaTime = L4_MABX_B.MinMax1;
3414 Time56 = L4_MABX_P.Saturation_LowerSat_p3;
3415 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_g;
3416 if (DeltaTime > PositionFinalLimited) {
3417 L4_MABX_B.Saturation = PositionFinalLimited;
3418 } else if (DeltaTime < Time56) {
3419 L4_MABX_B.Saturation = Time56;
3420 } else {
3421 L4_MABX_B.Saturation = DeltaTime;
3422 }
3423
3424 /* End of Saturate: '<S835>/Saturation' */
3425
3426 /* Product: '<S835>/Divide' incorporates:
3427 * Constant: '<S768>/dT'
3428 */
3429 L4_MABX_B.Divide = L4_MABX_P.dT_Value / L4_MABX_B.Saturation;
3430
3431 /* Product: '<S835>/Product2' */
3432 L4_MABX_B.Product2 = L4_MABX_B.Pedal_1_pwm_dc_raw_value * L4_MABX_B.Divide;
3433
3434 /* Sum: '<S835>/Subtract1' incorporates:
3435 * Constant: '<S835>/Constant1'
3436 */
3437 L4_MABX_B.Subtract1 = L4_MABX_P.Constant1_Value_g2 - L4_MABX_B.Divide;
3438
3439 /* UnitDelay: '<S835>/Unit_Delay2' */
3440 L4_MABX_B.Unit_Delay2 = L4_MABX_DW.Unit_Delay2_DSTATE;
3441
3442 /* Product: '<S835>/Product1' */
3443 L4_MABX_B.Product1 = L4_MABX_B.Subtract1 * L4_MABX_B.Unit_Delay2;
3444
3445 /* Sum: '<S835>/Add1' */
3446 L4_MABX_B.Add1 = L4_MABX_B.Product2 + L4_MABX_B.Product1;
3447
3448 /* Outputs for Atomic SubSystem: '<S835>/If_Then_Else' */
3449 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_g,
3450 L4_MABX_B.Pedal_1_pwm_dc_raw_value, L4_MABX_B.Add1,
3451 &L4_MABX_B.If_Then_Else_b);
3452
3453 /* End of Outputs for SubSystem: '<S835>/If_Then_Else' */
3454
3455 /* Lookup_n-D: '<S768>/PEDAL_PWM_ANGLE_SENS_1_MPV' */
3456 L4_MABX_B.Pedal_1_pwm_undefault = look1_binlcapw
3457 (L4_MABX_B.If_Then_Else_b.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_SENS_1_MPV_bp01,
3458 L4_MABX_P.PEDAL_PWM_ANGLE_SENS_1_MPV_tabl, 7U);
3459
3460 /* UnitDelay: '<S768>/Unit_Delay1' */
3461 L4_MABX_B.Unit_Delay1_c = L4_MABX_DW.Unit_Delay1_DSTATE_o;
3462
3463 /* UnitDelay: '<S836>/Unit_Delay1' */
3464 L4_MABX_B.Unit_Delay1_g = L4_MABX_DW.Unit_Delay1_DSTATE_a;
3465
3466 /* Logic: '<S836>/Logical Operator' */
3467 L4_MABX_B.LogicalOperator_j = (L4_MABX_B.Unit_Delay1_c ||
3468 L4_MABX_B.Unit_Delay1_g);
3469
3470 /* MinMax: '<S836>/MinMax1' incorporates:
3471 * Constant: '<S768>/PEDAL_PWM_SENSOR_DATA_APV.T2_CONST'
3472 * Constant: '<S768>/dT1'
3473 */
3474 DeltaTime = L4_MABX_P.dT1_Value;
3475 PositionFinalLimited = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVT2_CON;
3476 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3477 PositionFinalLimited = DeltaTime;
3478 }
3479
3480 L4_MABX_B.MinMax1_b = PositionFinalLimited;
3481
3482 /* End of MinMax: '<S836>/MinMax1' */
3483
3484 /* Saturate: '<S836>/Saturation' */
3485 DeltaTime = L4_MABX_B.MinMax1_b;
3486 Time56 = L4_MABX_P.Saturation_LowerSat_f;
3487 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_c;
3488 if (DeltaTime > PositionFinalLimited) {
3489 L4_MABX_B.Saturation_n = PositionFinalLimited;
3490 } else if (DeltaTime < Time56) {
3491 L4_MABX_B.Saturation_n = Time56;
3492 } else {
3493 L4_MABX_B.Saturation_n = DeltaTime;
3494 }
3495
3496 /* End of Saturate: '<S836>/Saturation' */
3497
3498 /* Product: '<S836>/Divide' incorporates:
3499 * Constant: '<S768>/dT1'
3500 */
3501 L4_MABX_B.Divide_a = L4_MABX_P.dT1_Value / L4_MABX_B.Saturation_n;
3502
3503 /* Product: '<S836>/Product2' */
3504 L4_MABX_B.Product2_g = L4_MABX_B.Pedal_2_pwm_freq_raw_value *
3505 L4_MABX_B.Divide_a;
3506
3507 /* Sum: '<S836>/Subtract1' incorporates:
3508 * Constant: '<S836>/Constant1'
3509 */
3510 L4_MABX_B.Subtract1_p = L4_MABX_P.Constant1_Value_d - L4_MABX_B.Divide_a;
3511
3512 /* UnitDelay: '<S836>/Unit_Delay2' */
3513 L4_MABX_B.Unit_Delay2_m = L4_MABX_DW.Unit_Delay2_DSTATE_b;
3514
3515 /* Product: '<S836>/Product1' */
3516 L4_MABX_B.Product1_d = L4_MABX_B.Subtract1_p * L4_MABX_B.Unit_Delay2_m;
3517
3518 /* Sum: '<S836>/Add1' */
3519 L4_MABX_B.Add1_p = L4_MABX_B.Product2_g + L4_MABX_B.Product1_d;
3520
3521 /* Outputs for Atomic SubSystem: '<S836>/If_Then_Else' */
3522 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_j,
3523 L4_MABX_B.Pedal_2_pwm_freq_raw_value, L4_MABX_B.Add1_p,
3524 &L4_MABX_B.If_Then_Else_nh);
3525
3526 /* End of Outputs for SubSystem: '<S836>/If_Then_Else' */
3527
3528 /* Lookup_n-D: '<S768>/PEDAL_PWM_ANGLE_SENS_2_MPV' */
3529 L4_MABX_B.Pedal_2_pwm_undefault = look1_binlcapw
3530 (L4_MABX_B.If_Then_Else_nh.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_SENS_2_MPV_bp01,
3531 L4_MABX_P.PEDAL_PWM_ANGLE_SENS_2_MPV_tabl, 7U);
3532
3533 /* Sum: '<S770>/Subtract' */
3534 L4_MABX_B.Subtract = L4_MABX_B.Pedal_1_pwm_undefault -
3535 L4_MABX_B.Pedal_2_pwm_undefault;
3536
3537 /* Abs: '<S770>/Abs' */
3538 L4_MABX_B.Abs = fabs(L4_MABX_B.Subtract);
3539
3540 /* RelationalOperator: '<S772>/Compare' incorporates:
3541 * Constant: '<S772>/Constant'
3542 */
3543 L4_MABX_B.Compare_n = (L4_MABX_B.Pedal_1_pwm_health_state ==
3544 L4_MABX_P.CompareToConstant3_const_g);
3545
3546 /* RelationalOperator: '<S828>/Compare' incorporates:
3547 * Constant: '<S828>/Constant'
3548 */
3549 L4_MABX_B.Compare_ni = (L4_MABX_B.Pedal_2_pwm_health_state ==
3550 L4_MABX_P.CompareToConstant5_const);
3551
3552 /* Logic: '<S766>/Logical Operator7' */
3553 L4_MABX_B.LogicalOperator7 = !L4_MABX_B.Compare_ni;
3554
3555 /* RelationalOperator: '<S827>/Compare' incorporates:
3556 * Constant: '<S827>/Constant'
3557 */
3558 L4_MABX_B.Compare_a = (L4_MABX_B.Pedal_2_pwm_health_state ==
3559 L4_MABX_P.CompareToConstant4_const);
3560
3561 /* Logic: '<S766>/Logical Operator8' */
3562 L4_MABX_B.LogicalOperator8 = !L4_MABX_B.Compare_a;
3563
3564 /* UnitDelay: '<S834>/FixPt Unit Delay2' */
3565 L4_MABX_B.FixPtUnitDelay2_p = L4_MABX_DW.FixPtUnitDelay2_DSTATE_o0;
3566
3567 /* UnitDelay: '<S834>/FixPt Unit Delay1' */
3568 L4_MABX_B.Xold_b = L4_MABX_DW.FixPtUnitDelay1_DSTATE_k;
3569
3570 /* Switch: '<S834>/Init' incorporates:
3571 * Constant: '<S746>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3572 */
3573 if (L4_MABX_B.FixPtUnitDelay2_p != 0) {
3574 L4_MABX_B.Init_ig = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3575 } else {
3576 L4_MABX_B.Init_ig = L4_MABX_B.Xold_b;
3577 }
3578
3579 /* End of Switch: '<S834>/Init' */
3580
3581 /* Outputs for Atomic SubSystem: '<S766>/If_Then_Else3' */
3582 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator8,
3583 L4_MABX_B.Pedal_2_pwm_undefault, L4_MABX_B.Init_ig,
3584 &L4_MABX_B.If_Then_Else3_dy);
3585
3586 /* End of Outputs for SubSystem: '<S766>/If_Then_Else3' */
3587
3588 /* Outputs for Atomic SubSystem: '<S766>/If_Then_Else2' */
3589
3590 /* Constant: '<S746>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3591 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator7,
3592 L4_MABX_B.If_Then_Else3_dy.Switch,
3593 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3594 &L4_MABX_B.If_Then_Else2_i);
3595
3596 /* End of Outputs for SubSystem: '<S766>/If_Then_Else2' */
3597
3598 /* RelationalOperator: '<S826>/Compare' incorporates:
3599 * Constant: '<S826>/Constant'
3600 */
3601 L4_MABX_B.Compare_f = (L4_MABX_B.Pedal_1_pwm_health_state ==
3602 L4_MABX_P.CompareToConstant3_const_e);
3603
3604 /* Logic: '<S766>/Logical Operator5' */
3605 L4_MABX_B.LogicalOperator5 = !L4_MABX_B.Compare_f;
3606
3607 /* RelationalOperator: '<S825>/Compare' incorporates:
3608 * Constant: '<S825>/Constant'
3609 */
3610 L4_MABX_B.Compare_ao = (L4_MABX_B.Pedal_1_pwm_health_state ==
3611 L4_MABX_P.CompareToConstant1_const_o);
3612
3613 /* Logic: '<S766>/Logical Operator6' */
3614 L4_MABX_B.LogicalOperator6 = !L4_MABX_B.Compare_ao;
3615
3616 /* UnitDelay: '<S833>/FixPt Unit Delay2' */
3617 L4_MABX_B.FixPtUnitDelay2_oq = L4_MABX_DW.FixPtUnitDelay2_DSTATE_d;
3618
3619 /* UnitDelay: '<S833>/FixPt Unit Delay1' */
3620 L4_MABX_B.Xold_f = L4_MABX_DW.FixPtUnitDelay1_DSTATE_h;
3621
3622 /* Switch: '<S833>/Init' incorporates:
3623 * Constant: '<S746>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3624 */
3625 if (L4_MABX_B.FixPtUnitDelay2_oq != 0) {
3626 L4_MABX_B.Init_l = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3627 } else {
3628 L4_MABX_B.Init_l = L4_MABX_B.Xold_f;
3629 }
3630
3631 /* End of Switch: '<S833>/Init' */
3632
3633 /* Outputs for Atomic SubSystem: '<S766>/If_Then_Else1' */
3634 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator6,
3635 L4_MABX_B.Pedal_1_pwm_undefault, L4_MABX_B.Init_l,
3636 &L4_MABX_B.If_Then_Else1_j0);
3637
3638 /* End of Outputs for SubSystem: '<S766>/If_Then_Else1' */
3639
3640 /* Outputs for Atomic SubSystem: '<S766>/If_Then_Else' */
3641
3642 /* Constant: '<S746>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3643 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator5,
3644 L4_MABX_B.If_Then_Else1_j0.Switch,
3645 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3646 &L4_MABX_B.If_Then_Else_he);
3647
3648 /* End of Outputs for SubSystem: '<S766>/If_Then_Else' */
3649
3650 /* Outputs for Atomic SubSystem: '<S764>/If_Then_Else1' */
3651 L4_MABX_If_Then_Else(L4_MABX_B.Compare_n, L4_MABX_B.If_Then_Else2_i.Switch,
3652 L4_MABX_B.If_Then_Else_he.Switch,
3653 &L4_MABX_B.If_Then_Else1);
3654
3655 /* End of Outputs for SubSystem: '<S764>/If_Then_Else1' */
3656
3657 /* RelationalOperator: '<S771>/Compare' incorporates:
3658 * Constant: '<S771>/Constant'
3659 */
3660 L4_MABX_B.Compare_g = (L4_MABX_B.Pedal_2_pwm_health_state ==
3661 L4_MABX_P.CompareToConstant1_const_p);
3662
3663 /* Outputs for Atomic SubSystem: '<S764>/If_Then_Else2' */
3664 L4_MABX_If_Then_Else(L4_MABX_B.Compare_g, L4_MABX_B.If_Then_Else_he.Switch,
3665 L4_MABX_B.If_Then_Else2_i.Switch,
3666 &L4_MABX_B.If_Then_Else2);
3667
3668 /* End of Outputs for SubSystem: '<S764>/If_Then_Else2' */
3669
3670 /* MinMax: '<S764>/MinMax' */
3671 DeltaTime = L4_MABX_B.If_Then_Else1.Switch;
3672 PositionFinalLimited = L4_MABX_B.If_Then_Else2.Switch;
3673 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3674 PositionFinalLimited = DeltaTime;
3675 }
3676
3677 L4_MABX_B.MinMax = PositionFinalLimited;
3678
3679 /* End of MinMax: '<S764>/MinMax' */
3680
3681 /* Outputs for Atomic SubSystem: '<S764>/If_Then_Else' */
3682
3683 /* Constant: '<S746>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3684 L4_MABX_If_Then_Else(L4_MABX_B.F_Pedal_pwm_sens_total_failure,
3685 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3686 L4_MABX_B.MinMax, &L4_MABX_B.If_Then_Else_p);
3687
3688 /* End of Outputs for SubSystem: '<S764>/If_Then_Else' */
3689
3690 /* Lookup_n-D: '<S770>/PEDAL_PWM_ANGLE_DEV_MPV' */
3691 L4_MABX_B.PEDAL_PWM_ANGLE_DEV_MPV = look1_binlcapw
3692 (L4_MABX_B.If_Then_Else_p.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_DEV_MPV_bp01Dat,
3693 L4_MABX_P.PEDAL_PWM_ANGLE_DEV_MPV_tableDa, 7U);
3694
3695 /* RelationalOperator: '<S770>/Relational Operator' */
3696 L4_MABX_B.F_Pedal_pwm_sync_fault = (L4_MABX_B.Abs >
3697 L4_MABX_B.PEDAL_PWM_ANGLE_DEV_MPV);
3698
3699 /* DataTypeConversion: '<S765>/Data Type Conversion2' */
3700 L4_MABX_B.DataTypeConversion2 = L4_MABX_B.F_Pedal_pwm_sync_fault;
3701
3702 /* RelationalOperator: '<S817>/min_relop' incorporates:
3703 * Constant: '<S765>/PWMSynchRngMin'
3704 */
3705 L4_MABX_B.min_relop_i = (L4_MABX_P.PWMSynchRngMin_Value <
3706 L4_MABX_B.DataTypeConversion2);
3707
3708 /* RelationalOperator: '<S817>/max_relop' incorporates:
3709 * Constant: '<S765>/PWMSynchRngMax'
3710 */
3711 L4_MABX_B.max_relop_i = (L4_MABX_B.DataTypeConversion2 <
3712 L4_MABX_P.PWMSynchRngMax_Value);
3713
3714 /* Logic: '<S817>/conjunction' */
3715 L4_MABX_B.conjunction_n = (L4_MABX_B.min_relop_i && L4_MABX_B.max_relop_i);
3716
3717 /* UnitDelay: '<S822>/FixPt Unit Delay2' */
3718 L4_MABX_B.FixPtUnitDelay2_n = L4_MABX_DW.FixPtUnitDelay2_DSTATE_c;
3719
3720 /* UnitDelay: '<S822>/FixPt Unit Delay1' */
3721 L4_MABX_B.Xold_c = L4_MABX_DW.FixPtUnitDelay1_DSTATE_i;
3722
3723 /* Switch: '<S822>/Init' incorporates:
3724 * Constant: '<S765>/PWMSynchFaultLimMin'
3725 */
3726 if (L4_MABX_B.FixPtUnitDelay2_n != 0) {
3727 L4_MABX_B.Init_m = L4_MABX_P.PWMSynchFaultLimMin_Value;
3728 } else {
3729 L4_MABX_B.Init_m = L4_MABX_B.Xold_c;
3730 }
3731
3732 /* End of Switch: '<S822>/Init' */
3733
3734 /* Sum: '<S818>/FixPt Sum1' incorporates:
3735 * Constant: '<S818>/FixPt Constant'
3736 */
3737 L4_MABX_B.FixPtSum1_am = L4_MABX_B.Init_m - L4_MABX_P.FixPtConstant_Value_d;
3738
3739 /* Sum: '<S821>/FixPt Sum1' incorporates:
3740 * Constant: '<S821>/FixPt Constant'
3741 */
3742 L4_MABX_B.FixPtSum1_o = L4_MABX_B.Init_m + L4_MABX_P.FixPtConstant_Value_i3;
3743
3744 /* Outputs for Atomic SubSystem: '<S784>/If_Then_Else3' */
3745 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_n, L4_MABX_B.FixPtSum1_am,
3746 L4_MABX_B.FixPtSum1_o, &L4_MABX_B.If_Then_Else3_d);
3747
3748 /* End of Outputs for SubSystem: '<S784>/If_Then_Else3' */
3749
3750 /* RelationalOperator: '<S819>/Relational Operator1' incorporates:
3751 * Constant: '<S765>/PWMSynchFaultLimMax'
3752 */
3753 L4_MABX_B.RelationalOperator1_d = (L4_MABX_B.If_Then_Else3_d.Switch >=
3754 L4_MABX_P.PWMSynchFaultLimMax_Value);
3755
3756 /* RelationalOperator: '<S819>/Relational Operator' incorporates:
3757 * Constant: '<S765>/PWMSynchFaultLimMin'
3758 */
3759 L4_MABX_B.RelationalOperator_l = (L4_MABX_B.If_Then_Else3_d.Switch <=
3760 L4_MABX_P.PWMSynchFaultLimMin_Value);
3761
3762 /* Outputs for Atomic SubSystem: '<S819>/If_Then_Else1' */
3763
3764 /* Constant: '<S765>/PWMSynchFaultLimMin' */
3765 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_l,
3766 L4_MABX_P.PWMSynchFaultLimMin_Value,
3767 L4_MABX_B.If_Then_Else3_d.Switch,
3768 &L4_MABX_B.If_Then_Else1_j);
3769
3770 /* End of Outputs for SubSystem: '<S819>/If_Then_Else1' */
3771
3772 /* Outputs for Atomic SubSystem: '<S819>/If_Then_Else' */
3773
3774 /* Constant: '<S765>/PWMSynchFaultLimMax' */
3775 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_d,
3776 L4_MABX_P.PWMSynchFaultLimMax_Value,
3777 L4_MABX_B.If_Then_Else1_j.Switch,
3778 &L4_MABX_B.If_Then_Else_d);
3779
3780 /* End of Outputs for SubSystem: '<S819>/If_Then_Else' */
3781
3782 /* RelationalOperator: '<S784>/Relational Operator8' incorporates:
3783 * Constant: '<S765>/PWMSynchFaultLimMax'
3784 */
3785 L4_MABX_B.F_Fault_Hard_f = (L4_MABX_P.PWMSynchFaultLimMax_Value <=
3786 L4_MABX_B.If_Then_Else_d.Switch);
3787
3788 /* Logic: '<S746>/Logical Operator6' */
3789 L4_MABX_B.LogicalOperator6_i = (L4_MABX_B.F_Pedal_pwm_sens_total_failure ||
3790 L4_MABX_B.F_Fault_Hard_f);
3791
3792 /* Outputs for Enabled SubSystem: '<S746>/Slew_at_event' incorporates:
3793 * EnablePort: '<S769>/Enable'
3794 */
3795 /* Constant: '<S746>/F_PEDAL_TORQUE_SLEW_AT_FAULT' */
3796 if (L4_MABX_P.F_PEDAL_TORQUE_SLEW_AT_FAULT_Va) {
3797 if (!L4_MABX_DW.Slew_at_event_MODE) {
3798 /* InitializeConditions for UnitDelay: '<S840>/Unit_Delay' */
3799 L4_MABX_DW.Unit_Delay_DSTATE_bo = L4_MABX_P.Unit_Delay_InitialCondition_ks;
3800
3801 /* InitializeConditions for UnitDelay: '<S841>/Unit_Delay' */
3802 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Unit_Delay_InitialCondition_n;
3803
3804 /* InitializeConditions for UnitDelay: '<S844>/FixPt Unit Delay2' */
3805 L4_MABX_DW.FixPtUnitDelay2_DSTATE_mt =
3806 L4_MABX_P.FixPtUnitDelay2_InitialCondit_j;
3807
3808 /* InitializeConditions for UnitDelay: '<S844>/FixPt Unit Delay1' */
3809 L4_MABX_DW.FixPtUnitDelay1_DSTATE_m =
3810 L4_MABX_P.FixPtUnitDelay1_InitialCondi_ly;
3811
3812 /* InitializeConditions for UnitDelay: '<S839>/Unit_Delay' */
3813 L4_MABX_DW.Unit_Delay_DSTATE_em = L4_MABX_P.Unit_Delay_InitialCondition_g2;
3814 L4_MABX_DW.Slew_at_event_MODE = true;
3815 }
3816
3817 /* UnitDelay: '<S840>/Unit_Delay' */
3818 L4_MABX_B.Unit_Delay_pp = L4_MABX_DW.Unit_Delay_DSTATE_bo;
3819
3820 /* Logic: '<S840>/Logical Operator1' */
3821 L4_MABX_B.LogicalOperator1_n = !L4_MABX_B.Unit_Delay_pp;
3822
3823 /* Logic: '<S840>/Logical Operator' */
3824 L4_MABX_B.LogicalOperator_ga = (L4_MABX_B.LogicalOperator6_i &&
3825 L4_MABX_B.LogicalOperator1_n);
3826
3827 /* UnitDelay: '<S841>/Unit_Delay' */
3828 L4_MABX_B.Unit_Delay_jo = L4_MABX_DW.Unit_Delay_DSTATE_fi;
3829
3830 /* Logic: '<S841>/Logical Operator1' */
3831 L4_MABX_B.LogicalOperator1_c = (L4_MABX_B.LogicalOperator_ga ||
3832 L4_MABX_B.Unit_Delay_jo);
3833
3834 /* UnitDelay: '<S844>/FixPt Unit Delay2' */
3835 L4_MABX_B.FixPtUnitDelay2_g = L4_MABX_DW.FixPtUnitDelay2_DSTATE_mt;
3836
3837 /* UnitDelay: '<S844>/FixPt Unit Delay1' */
3838 L4_MABX_B.Xold_ki = L4_MABX_DW.FixPtUnitDelay1_DSTATE_m;
3839
3840 /* Switch: '<S844>/Init' incorporates:
3841 * Constant: '<S746>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3842 */
3843 if (L4_MABX_B.FixPtUnitDelay2_g != 0) {
3844 L4_MABX_B.Init_n = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3845 } else {
3846 L4_MABX_B.Init_n = L4_MABX_B.Xold_ki;
3847 }
3848
3849 /* End of Switch: '<S844>/Init' */
3850
3851 /* Abs: '<S841>/Abs' incorporates:
3852 * Constant: '<S746>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_UP'
3853 */
3854 L4_MABX_B.Abs_h = fabs(L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_n);
3855
3856 /* Product: '<S841>/Product1' incorporates:
3857 * Constant: '<S746>/PEDAL_PWM_SENSOR_DATA_APV.DT'
3858 */
3859 L4_MABX_B.Product1_k = L4_MABX_B.Abs_h *
3860 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDT_Val;
3861
3862 /* Sum: '<S841>/Add1' */
3863 L4_MABX_B.Add1_h = L4_MABX_B.Init_n + L4_MABX_B.Product1_k;
3864
3865 /* MinMax: '<S841>/MinMax2' incorporates:
3866 * Constant: '<S746>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3867 */
3868 DeltaTime = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3869 PositionFinalLimited = L4_MABX_B.Add1_h;
3870 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3871 PositionFinalLimited = DeltaTime;
3872 }
3873
3874 L4_MABX_B.MinMax2 = PositionFinalLimited;
3875
3876 /* End of MinMax: '<S841>/MinMax2' */
3877
3878 /* Abs: '<S841>/Abs1' incorporates:
3879 * Constant: '<S746>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_DOWN'
3880 */
3881 L4_MABX_B.Abs1 = fabs(L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_p);
3882
3883 /* Product: '<S841>/Product2' incorporates:
3884 * Constant: '<S746>/PEDAL_PWM_SENSOR_DATA_APV.DT'
3885 */
3886 L4_MABX_B.Product2_i = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDT_Val *
3887 L4_MABX_B.Abs1;
3888
3889 /* Sum: '<S841>/Subtract1' */
3890 L4_MABX_B.Subtract1_p2 = L4_MABX_B.Init_n - L4_MABX_B.Product2_i;
3891
3892 /* MinMax: '<S841>/MinMax1' */
3893 DeltaTime = L4_MABX_B.MinMax2;
3894 PositionFinalLimited = L4_MABX_B.Subtract1_p2;
3895 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3896 PositionFinalLimited = DeltaTime;
3897 }
3898
3899 L4_MABX_B.MinMax1_l = PositionFinalLimited;
3900
3901 /* End of MinMax: '<S841>/MinMax1' */
3902
3903 /* Outputs for Atomic SubSystem: '<S841>/If_Then_Else' */
3904 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_c,
3905 L4_MABX_B.If_Then_Else_p.Switch, L4_MABX_B.MinMax1_l,
3906 &L4_MABX_B.If_Then_Else_gq);
3907
3908 /* End of Outputs for SubSystem: '<S841>/If_Then_Else' */
3909
3910 /* Sum: '<S769>/Subtract' incorporates:
3911 * Constant: '<S746>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3912 */
3913 L4_MABX_B.Subtract_m = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL -
3914 L4_MABX_B.If_Then_Else_gq.Switch;
3915
3916 /* Abs: '<S769>/Abs' */
3917 L4_MABX_B.Abs_g = fabs(L4_MABX_B.Subtract_m);
3918
3919 /* RelationalOperator: '<S769>/Relational Operator1' incorporates:
3920 * Constant: '<S769>/Constant1'
3921 */
3922 L4_MABX_B.RelationalOperator1_c = (L4_MABX_B.Abs_g <=
3923 L4_MABX_P.Constant1_Value_b);
3924
3925 /* Logic: '<S839>/Logical Operator3' */
3926 L4_MABX_B.LogicalOperator3_j = !L4_MABX_B.RelationalOperator1_c;
3927
3928 /* UnitDelay: '<S839>/Unit_Delay' */
3929 L4_MABX_B.Unit_Delay_oh = L4_MABX_DW.Unit_Delay_DSTATE_em;
3930
3931 /* Logic: '<S839>/Logical Operator1' */
3932 L4_MABX_B.LogicalOperator1_j = (L4_MABX_B.LogicalOperator6_i ||
3933 L4_MABX_B.Unit_Delay_oh);
3934
3935 /* Logic: '<S839>/Logical Operator' */
3936 L4_MABX_B.LogicalOperator_p = (L4_MABX_B.LogicalOperator3_j &&
3937 L4_MABX_B.LogicalOperator1_j);
3938
3939 /* Logic: '<S839>/Logical Operator2' */
3940 L4_MABX_B.LogicalOperator2_p = !L4_MABX_B.LogicalOperator_p;
3941
3942 /* RelationalOperator: '<S842>/min_relop' incorporates:
3943 * Constant: '<S746>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_UP'
3944 * Constant: '<S842>/min_val'
3945 */
3946 L4_MABX_B.min_relop_j = (L4_MABX_P.CheckStaticLowerBound_min_p <=
3947 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_n);
3948
3949 /* Assertion: '<S842>/Assertion' */
3950 utAssert(L4_MABX_B.min_relop_j);
3951 } else {
3952 if (L4_MABX_DW.Slew_at_event_MODE) {
3953 /* Disable for Outport: '<S769>/F_Out_slewing' */
3954 L4_MABX_B.LogicalOperator_p = L4_MABX_P.F_Out_slewing_Y0_e;
3955
3956 /* Disable for Outport: '<S769>/Out' */
3957 L4_MABX_B.If_Then_Else_gq.Switch = L4_MABX_P.Out_Y0_lv;
3958 L4_MABX_DW.Slew_at_event_MODE = false;
3959 }
3960 }
3961
3962 /* End of Constant: '<S746>/F_PEDAL_TORQUE_SLEW_AT_FAULT' */
3963 /* End of Outputs for SubSystem: '<S746>/Slew_at_event' */
3964
3965 /* Outputs for Atomic SubSystem: '<S746>/If_Then_Else' */
3966 L4_MABX_If_Then_Else_e(L4_MABX_B.LogicalOperator_p,
3967 L4_MABX_B.If_Then_Else_gq.Switch, L4_MABX_B.If_Then_Else_p.Switch);
3968
3969 /* End of Outputs for SubSystem: '<S746>/If_Then_Else' */
3970
3971 /* S-Function (rti_commonblock): '<S734>/S-Function1' */
3972 /* This comment workarounds a code generation problem */
3973 {
3974 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
3975 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
3976 ADC_TP4_CH3,
3977 (dsfloat *)&L4_MABX_B.SFunction1);
3978 }
3979
3980 /* Gain: '<S418>/KL15_Monitor' */
3981 L4_MABX_B.IgnitionKeySwitch_voltage = L4_MABX_P.KL15_Monitor_Gain *
3982 L4_MABX_B.SFunction1;
3983
3984 /* Outputs for Enabled SubSystem: '<S509>/CCVS1_31' incorporates:
3985 * EnablePort: '<S510>/Enable'
3986 */
3987 /* Constant: '<S432>/Constant' */
3988 if (L4_MABX_P.Constant_Value_oi) {
3989 /* S-Function (rti_commonblock): '<S510>/S-Function1' */
3990 /* This comment workarounds a code generation problem */
3991
3992 /* dSPACE RTICAN RX Message Block: "CCVS1_31" Id:419361073 */
3993 {
3994 UInt32 *CAN_Msg;
3995 static dsfloat time_old = 0.0;
3996
3997 /* Read status and timestamp info (previous message) */
3998 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].timestamp !=
3999 time_old) {
4000 /* ... save timestamp info for the calculation of the RX status
4001 during the consecutive sample hit*/
4002 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].
4003 timestamp;
4004
4005 /* ... set the processed flag to one */
4006 L4_MABX_B.SFunction1_o21_p = 1.0;
4007 L4_MABX_B.SFunction1_o22_c = (real_T)
4008 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].timestamp;
4009 L4_MABX_B.SFunction1_o23_ju = (real_T)
4010 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].deltatime;
4011 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].data;
4012
4013 /* Decode CAN message */
4014 {
4015 {
4016 rtican_Signal_t CAN_Sgn;
4017
4018 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
4019 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4020 CAN_Sgn.UnsignedSgn &= 0x00000003;
4021 L4_MABX_B.SFunction1_o1_mm = ((real_T) CAN_Sgn.UnsignedSgn);
4022
4023 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
4024 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4025 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4026 CAN_Sgn.UnsignedSgn &= 0x00000003;
4027 L4_MABX_B.SFunction1_o2_nx = ((real_T) CAN_Sgn.UnsignedSgn);
4028
4029 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
4030 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4031 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4032 CAN_Sgn.UnsignedSgn &= 0x00000003;
4033 L4_MABX_B.SFunction1_o3_d3 = ((real_T) CAN_Sgn.UnsignedSgn);
4034
4035 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
4036 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4037 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4038 CAN_Sgn.UnsignedSgn &= 0x00000003;
4039 L4_MABX_B.SFunction1_o4_iu = ((real_T) CAN_Sgn.UnsignedSgn);
4040
4041 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
4042 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4043 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
4044 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4045 L4_MABX_B.SFunction1_o5_hq = 0.00390625 * ( ((real_T)
4046 CAN_Sgn.UnsignedSgn) );
4047
4048 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
4049 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4050 CAN_Sgn.UnsignedSgn &= 0x00000003;
4051 L4_MABX_B.SFunction1_o6_p = ((real_T) CAN_Sgn.UnsignedSgn);
4052
4053 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
4054 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4055 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4056 CAN_Sgn.UnsignedSgn &= 0x00000003;
4057 L4_MABX_B.SFunction1_o7_l3 = ((real_T) CAN_Sgn.UnsignedSgn);
4058
4059 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
4060 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4061 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4062 CAN_Sgn.UnsignedSgn &= 0x00000003;
4063 L4_MABX_B.SFunction1_o8_ci = ((real_T) CAN_Sgn.UnsignedSgn);
4064
4065 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
4066 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4067 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4068 CAN_Sgn.UnsignedSgn &= 0x00000003;
4069 L4_MABX_B.SFunction1_o9_l5 = ((real_T) CAN_Sgn.UnsignedSgn);
4070
4071 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
4072 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4073 CAN_Sgn.UnsignedSgn &= 0x00000003;
4074 L4_MABX_B.SFunction1_o10_nk = ((real_T) CAN_Sgn.UnsignedSgn);
4075
4076 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
4077 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4078 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4079 CAN_Sgn.UnsignedSgn &= 0x00000003;
4080 L4_MABX_B.SFunction1_o11_n0 = ((real_T) CAN_Sgn.UnsignedSgn);
4081
4082 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
4083 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4084 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4085 CAN_Sgn.UnsignedSgn &= 0x00000003;
4086 L4_MABX_B.SFunction1_o12_f = ((real_T) CAN_Sgn.UnsignedSgn);
4087
4088 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
4089 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4090 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4091 CAN_Sgn.UnsignedSgn &= 0x00000003;
4092 L4_MABX_B.SFunction1_o13_p = ((real_T) CAN_Sgn.UnsignedSgn);
4093
4094 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
4095 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4096 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4097 L4_MABX_B.SFunction1_o14_g = ((real_T) CAN_Sgn.UnsignedSgn);
4098
4099 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
4100 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4101 CAN_Sgn.UnsignedSgn &= 0x0000001F;
4102 L4_MABX_B.SFunction1_o15_d = ((real_T) CAN_Sgn.UnsignedSgn);
4103
4104 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
4105 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4106 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 5;
4107 CAN_Sgn.UnsignedSgn &= 0x00000007;
4108 L4_MABX_B.SFunction1_o16_c = ((real_T) CAN_Sgn.UnsignedSgn);
4109
4110 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
4111 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4112 CAN_Sgn.UnsignedSgn &= 0x00000003;
4113 L4_MABX_B.SFunction1_o17_p = ((real_T) CAN_Sgn.UnsignedSgn);
4114
4115 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
4116 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4117 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4118 CAN_Sgn.UnsignedSgn &= 0x00000003;
4119 L4_MABX_B.SFunction1_o18_c = ((real_T) CAN_Sgn.UnsignedSgn);
4120
4121 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
4122 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4123 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4124 CAN_Sgn.UnsignedSgn &= 0x00000003;
4125 L4_MABX_B.SFunction1_o19_n = ((real_T) CAN_Sgn.UnsignedSgn);
4126
4127 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
4128 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4129 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4130 CAN_Sgn.UnsignedSgn &= 0x00000003;
4131 L4_MABX_B.SFunction1_o20_k = ((real_T) CAN_Sgn.UnsignedSgn);
4132 }
4133 }
4134 } else {
4135 /* set RX status to 0 because no new message has arrived */
4136 L4_MABX_B.SFunction1_o21_p = 0.0;
4137 }
4138 }
4139 }
4140
4141 /* End of Constant: '<S432>/Constant' */
4142 /* End of Outputs for SubSystem: '<S509>/CCVS1_31' */
4143
4144 /* Outputs for Enabled SubSystem: '<S520>/EBC2_0B1' incorporates:
4145 * EnablePort: '<S521>/Enable'
4146 */
4147 /* Constant: '<S437>/Enable_RX_EBC2_0B' */
4148 if (L4_MABX_P.Enable_RX_EBC2_0B_Value) {
4149 /* S-Function (rti_commonblock): '<S521>/S-Function1' */
4150 /* This comment workarounds a code generation problem */
4151
4152 /* dSPACE RTICAN RX Message Block: "EBC2_0B" Id:419348235 */
4153 {
4154 UInt32 *CAN_Msg;
4155 static dsfloat time_old = 0.0;
4156
4157 /* Read status and timestamp info (previous message) */
4158 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].timestamp !=
4159 time_old) {
4160 /* ... save timestamp info for the calculation of the RX status
4161 during the consecutive sample hit*/
4162 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].
4163 timestamp;
4164
4165 /* ... set the processed flag to one */
4166 L4_MABX_B.SFunction1_o8_mh = 1.0;
4167 L4_MABX_B.SFunction1_o9_gl = (real_T)
4168 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].timestamp;
4169 L4_MABX_B.SFunction1_o10_hp = (real_T)
4170 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].deltatime;
4171 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].data;
4172
4173 /* Decode CAN message */
4174 {
4175 {
4176 rtican_Signal_t CAN_Sgn;
4177
4178 /* ...... "FrontAxleSpeed" (0|16, standard signal, unsigned int, little endian) */
4179 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4180 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
4181 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4182 L4_MABX_B.SFunction1_o1_loi = 0.00390625 * ( ((real_T)
4183 CAN_Sgn.UnsignedSgn) );
4184
4185 /* ...... "RelativeSpeedFrontAxleLeftWheel" (16|8, standard signal, unsigned int, little endian) */
4186 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4187 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4188 L4_MABX_B.SFunction1_o2_e2 = -7.8125 + ( 0.0625 * ( ((real_T)
4189 CAN_Sgn.UnsignedSgn) ) );
4190
4191 /* ...... "RlativeSpeedFrontAxleRightWheel" (24|8, standard signal, unsigned int, little endian) */
4192 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4193 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4194 L4_MABX_B.SFunction1_o3_n2 = -7.8125 + ( 0.0625 * ( ((real_T)
4195 CAN_Sgn.UnsignedSgn) ) );
4196
4197 /* ...... "RelativeSpeedRearAxle1LeftWheel" (32|8, standard signal, unsigned int, little endian) */
4198 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4199 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4200 L4_MABX_B.SFunction1_o4_nx = -7.8125 + ( 0.0625 * ( ((real_T)
4201 CAN_Sgn.UnsignedSgn) ) );
4202
4203 /* ...... "RlativeSpeedRearAxle1RightWheel" (40|8, standard signal, unsigned int, little endian) */
4204 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4205 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4206 L4_MABX_B.SFunction1_o5_n5 = -7.8125 + ( 0.0625 * ( ((real_T)
4207 CAN_Sgn.UnsignedSgn) ) );
4208
4209 /* ...... "RelativeSpeedRearAxle2LeftWheel" (48|8, standard signal, unsigned int, little endian) */
4210 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4211 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4212 L4_MABX_B.SFunction1_o6_g5 = -7.8125 + ( 0.0625 * ( ((real_T)
4213 CAN_Sgn.UnsignedSgn) ) );
4214
4215 /* ...... "RlativeSpeedRearAxle2RightWheel" (56|8, standard signal, unsigned int, little endian) */
4216 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4217 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4218 L4_MABX_B.SFunction1_o7_gm = -7.8125 + ( 0.0625 * ( ((real_T)
4219 CAN_Sgn.UnsignedSgn) ) );
4220 }
4221 }
4222 } else {
4223 /* set RX status to 0 because no new message has arrived */
4224 L4_MABX_B.SFunction1_o8_mh = 0.0;
4225 }
4226 }
4227 }
4228
4229 /* End of Constant: '<S437>/Enable_RX_EBC2_0B' */
4230 /* End of Outputs for SubSystem: '<S520>/EBC2_0B1' */
4231
4232 /* Outputs for Enabled SubSystem: '<S578>/HRW_0B' incorporates:
4233 * EnablePort: '<S579>/Enable'
4234 */
4235 /* Constant: '<S444>/Enable_HRW_RX_0B' */
4236 if (L4_MABX_P.Enable_HRW_RX_0B_Value) {
4237 /* S-Function (rti_commonblock): '<S579>/S-Function1' */
4238 /* This comment workarounds a code generation problem */
4239
4240 /* dSPACE RTICAN RX Message Block: "HRW_0B" Id:150892043 */
4241 {
4242 UInt32 *CAN_Msg;
4243 static dsfloat time_old = 0.0;
4244
4245 /* Read status and timestamp info (previous message) */
4246 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].timestamp !=
4247 time_old) {
4248 /* ... save timestamp info for the calculation of the RX status
4249 during the consecutive sample hit*/
4250 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].
4251 timestamp;
4252
4253 /* ... set the processed flag to one */
4254 L4_MABX_B.SFunction1_o5_e2 = 1.0;
4255 L4_MABX_B.SFunction1_o6_os = (real_T)
4256 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].timestamp;
4257 L4_MABX_B.SFunction1_o7_m0 = (real_T)
4258 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].deltatime;
4259 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].data;
4260
4261 /* Decode CAN message */
4262 {
4263 {
4264 rtican_Signal_t CAN_Sgn;
4265
4266 /* ...... "FrontAxleLeftWheelSpeed" (0|16, standard signal, unsigned int, little endian) */
4267 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4268 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
4269 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4270 L4_MABX_B.SFunction1_o1_lo = 0.00390625 * ( ((real_T)
4271 CAN_Sgn.UnsignedSgn) );
4272
4273 /* ...... "FrontAxleRightWheelSpeed" (16|16, standard signal, unsigned int, little endian) */
4274 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4275 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
4276 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4277 L4_MABX_B.SFunction1_o2_pw = 0.00390625 * ( ((real_T)
4278 CAN_Sgn.UnsignedSgn) );
4279
4280 /* ...... "RearAxleLeftWheelSpeed" (32|16, standard signal, unsigned int, little endian) */
4281 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4282 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
4283 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4284 L4_MABX_B.SFunction1_o3_ip = 0.00390625 * ( ((real_T)
4285 CAN_Sgn.UnsignedSgn) );
4286
4287 /* ...... "RearAxleRightWheelSpeed" (48|16, standard signal, unsigned int, little endian) */
4288 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4289 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
4290 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4291 L4_MABX_B.SFunction1_o4_az = 0.00390625 * ( ((real_T)
4292 CAN_Sgn.UnsignedSgn) );
4293 }
4294 }
4295 } else {
4296 /* set RX status to 0 because no new message has arrived */
4297 L4_MABX_B.SFunction1_o5_e2 = 0.0;
4298 }
4299 }
4300 }
4301
4302 /* End of Constant: '<S444>/Enable_HRW_RX_0B' */
4303 /* End of Outputs for SubSystem: '<S578>/HRW_0B' */
4304
4305 /* Outputs for Enabled SubSystem: '<S518>/EBC1_0B' incorporates:
4306 * EnablePort: '<S519>/Enable'
4307 */
4308 /* Constant: '<S436>/Constant1' */
4309 if (L4_MABX_P.Constant1_Value_av) {
4310 /* S-Function (rti_commonblock): '<S519>/S-Function1' */
4311 /* This comment workarounds a code generation problem */
4312
4313 /* dSPACE RTICAN RX Message Block: "EBC1_0B" Id:418382219 */
4314 {
4315 UInt32 *CAN_Msg;
4316 static dsfloat time_old = 0.0;
4317
4318 /* Read status and timestamp info (previous message) */
4319 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].timestamp !=
4320 time_old) {
4321 /* ... save timestamp info for the calculation of the RX status
4322 during the consecutive sample hit*/
4323 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].
4324 timestamp;
4325
4326 /* ... set the processed flag to one */
4327 L4_MABX_B.SFunction1_o23_f = 1.0;
4328 L4_MABX_B.SFunction1_o24_k = (real_T)
4329 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].timestamp;
4330 L4_MABX_B.SFunction1_o25_p = (real_T)
4331 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].deltatime;
4332 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].data;
4333
4334 /* Decode CAN message */
4335 {
4336 {
4337 rtican_Signal_t CAN_Sgn;
4338
4339 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
4340 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4341 CAN_Sgn.UnsignedSgn &= 0x00000003;
4342 L4_MABX_B.SFunction1_o1_oq = ((real_T) CAN_Sgn.UnsignedSgn);
4343
4344 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
4345 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4346 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4347 CAN_Sgn.UnsignedSgn &= 0x00000003;
4348 L4_MABX_B.SFunction1_o2_iw = ((real_T) CAN_Sgn.UnsignedSgn);
4349
4350 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
4351 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4352 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4353 CAN_Sgn.UnsignedSgn &= 0x00000003;
4354 L4_MABX_B.SFunction1_o3_ix = ((real_T) CAN_Sgn.UnsignedSgn);
4355
4356 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
4357 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4358 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4359 CAN_Sgn.UnsignedSgn &= 0x00000003;
4360 L4_MABX_B.SFunction1_o4_h5 = ((real_T) CAN_Sgn.UnsignedSgn);
4361
4362 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
4363 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4364 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4365 L4_MABX_B.SFunction1_o5_fy = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4366
4367 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
4368 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4369 CAN_Sgn.UnsignedSgn &= 0x00000003;
4370 L4_MABX_B.SFunction1_o6_ok = ((real_T) CAN_Sgn.UnsignedSgn);
4371
4372 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
4373 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4374 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4375 CAN_Sgn.UnsignedSgn &= 0x00000003;
4376 L4_MABX_B.SFunction1_o7_f = ((real_T) CAN_Sgn.UnsignedSgn);
4377
4378 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
4379 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4380 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4381 CAN_Sgn.UnsignedSgn &= 0x00000003;
4382 L4_MABX_B.SFunction1_o8_ge = ((real_T) CAN_Sgn.UnsignedSgn);
4383
4384 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
4385 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4386 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4387 CAN_Sgn.UnsignedSgn &= 0x00000003;
4388 L4_MABX_B.SFunction1_o9_er = ((real_T) CAN_Sgn.UnsignedSgn);
4389
4390 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
4391 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4392 CAN_Sgn.UnsignedSgn &= 0x00000003;
4393 L4_MABX_B.SFunction1_o10_a = ((real_T) CAN_Sgn.UnsignedSgn);
4394
4395 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
4396 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4397 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4398 CAN_Sgn.UnsignedSgn &= 0x00000003;
4399 L4_MABX_B.SFunction1_o11_f = ((real_T) CAN_Sgn.UnsignedSgn);
4400
4401 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
4402 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4403 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4404 CAN_Sgn.UnsignedSgn &= 0x00000003;
4405 L4_MABX_B.SFunction1_o12_e = ((real_T) CAN_Sgn.UnsignedSgn);
4406
4407 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
4408 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4409 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4410 CAN_Sgn.UnsignedSgn &= 0x00000003;
4411 L4_MABX_B.SFunction1_o13_o = ((real_T) CAN_Sgn.UnsignedSgn);
4412
4413 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
4414 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4415 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4416 L4_MABX_B.SFunction1_o14_o = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4417
4418 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
4419 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4420 CAN_Sgn.UnsignedSgn &= 0x00000003;
4421 L4_MABX_B.SFunction1_o15_p = ((real_T) CAN_Sgn.UnsignedSgn);
4422
4423 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
4424 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4425 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4426 CAN_Sgn.UnsignedSgn &= 0x00000003;
4427 L4_MABX_B.SFunction1_o16_k = ((real_T) CAN_Sgn.UnsignedSgn);
4428
4429 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
4430 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4431 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4432 CAN_Sgn.UnsignedSgn &= 0x00000003;
4433 L4_MABX_B.SFunction1_o17_e = ((real_T) CAN_Sgn.UnsignedSgn);
4434
4435 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
4436 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4437 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4438 CAN_Sgn.UnsignedSgn &= 0x00000003;
4439 L4_MABX_B.SFunction1_o18_b = ((real_T) CAN_Sgn.UnsignedSgn);
4440
4441 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
4442 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4443 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4444 L4_MABX_B.SFunction1_o19_j = ((real_T) CAN_Sgn.UnsignedSgn);
4445
4446 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
4447 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4448 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4449 CAN_Sgn.UnsignedSgn &= 0x00000003;
4450 L4_MABX_B.SFunction1_o20_a = ((real_T) CAN_Sgn.UnsignedSgn);
4451
4452 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
4453 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4454 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4455 CAN_Sgn.UnsignedSgn &= 0x00000003;
4456 L4_MABX_B.SFunction1_o21_o = ((real_T) CAN_Sgn.UnsignedSgn);
4457
4458 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
4459 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4460 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4461 CAN_Sgn.UnsignedSgn &= 0x00000003;
4462 L4_MABX_B.SFunction1_o22_p = ((real_T) CAN_Sgn.UnsignedSgn);
4463 }
4464 }
4465 } else {
4466 /* set RX status to 0 because no new message has arrived */
4467 L4_MABX_B.SFunction1_o23_f = 0.0;
4468 }
4469 }
4470 }
4471
4472 /* End of Constant: '<S436>/Constant1' */
4473 /* End of Outputs for SubSystem: '<S518>/EBC1_0B' */
4474
4475 /* Outputs for Enabled SubSystem: '<S573>/ETC2_031' incorporates:
4476 * EnablePort: '<S574>/Enable'
4477 */
4478 /* Constant: '<S442>/Enable_RX_ETC2_03' */
4479 if (L4_MABX_P.Enable_RX_ETC2_03_Value) {
4480 /* S-Function (rti_commonblock): '<S574>/S-Function1' */
4481 /* This comment workarounds a code generation problem */
4482
4483 /* dSPACE RTICAN RX Message Block: "ETC2_03" Id:418383107 */
4484 {
4485 UInt32 *CAN_Msg;
4486 static dsfloat time_old = 0.0;
4487
4488 /* Read status and timestamp info (previous message) */
4489 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].timestamp !=
4490 time_old) {
4491 /* ... save timestamp info for the calculation of the RX status
4492 during the consecutive sample hit*/
4493 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].
4494 timestamp;
4495
4496 /* ... set the processed flag to one */
4497 L4_MABX_B.SFunction1_o4_ls = 1.0;
4498 L4_MABX_B.SFunction1_o5_dc = (real_T)
4499 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].timestamp;
4500 L4_MABX_B.SFunction1_o6_k = (real_T)
4501 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].deltatime;
4502 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].data;
4503
4504 /* Decode CAN message */
4505 {
4506 {
4507 rtican_Signal_t CAN_Sgn;
4508
4509 /* ...... "SPN524_TransSelectedGear" (0|8, standard signal, unsigned int, little endian) */
4510 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4511 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4512 L4_MABX_B.SFunction1_o1_f1 = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4513 );
4514
4515 /* ...... "SPN526_TransActualGearRatio" (8|16, standard signal, unsigned int, little endian) */
4516 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4517 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
4518 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4519 L4_MABX_B.SFunction1_o2_er = 0.001 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4520 );
4521
4522 /* ...... "SPN523_TransCurrentGear" (24|8, standard signal, unsigned int, little endian) */
4523 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4524 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4525 L4_MABX_B.SFunction1_o3_lh = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4526 );
4527 }
4528 }
4529 } else {
4530 /* set RX status to 0 because no new message has arrived */
4531 L4_MABX_B.SFunction1_o4_ls = 0.0;
4532 }
4533 }
4534 }
4535
4536 /* End of Constant: '<S442>/Enable_RX_ETC2_03' */
4537 /* End of Outputs for SubSystem: '<S573>/ETC2_031' */
4538
4539 /* DataTypeConversion: '<S573>/Data Type Conversion1' */
4540 L4_MABX_B.SPN524_TransSelectedGear = L4_MABX_B.SFunction1_o1_f1;
4541
4542 /* DataTypeConversion: '<S573>/Data Type Conversion2' */
4543 L4_MABX_B.SPN523_TransCurrentGear = L4_MABX_B.SFunction1_o3_lh;
4544
4545 /* DataTypeConversion: '<S573>/Data Type Conversion3' */
4546 L4_MABX_B.SPN526_TransActualGearRatio = L4_MABX_B.SFunction1_o2_er;
4547
4548 /* Outputs for Enabled SubSystem: '<S567>/EEC1_001' incorporates:
4549 * EnablePort: '<S568>/Enable'
4550 */
4551 /* Constant: '<S439>/Enable_RX_EEC1_00' */
4552 if (L4_MABX_P.Enable_RX_EEC1_00_Value) {
4553 /* S-Function (rti_commonblock): '<S568>/S-Function1' */
4554 /* This comment workarounds a code generation problem */
4555
4556 /* dSPACE RTICAN RX Message Block: "EEC1_00" Id:217056256 */
4557 {
4558 UInt32 *CAN_Msg;
4559 static dsfloat time_old = 0.0;
4560
4561 /* Read status and timestamp info (previous message) */
4562 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].timestamp !=
4563 time_old) {
4564 /* ... save timestamp info for the calculation of the RX status
4565 during the consecutive sample hit*/
4566 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].
4567 timestamp;
4568
4569 /* ... set the processed flag to one */
4570 L4_MABX_B.SFunction1_o9_nu = 1.0;
4571 L4_MABX_B.SFunction1_o10_f = (real_T)
4572 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].timestamp;
4573 L4_MABX_B.SFunction1_o11_k = (real_T)
4574 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].deltatime;
4575 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].data;
4576
4577 /* Decode CAN message */
4578 {
4579 {
4580 rtican_Signal_t CAN_Sgn;
4581
4582 /* ...... "EngTorqueMode" (0|4, standard signal, unsigned int, little endian) */
4583 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4584 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4585 L4_MABX_B.SFunction1_o1_od = ((real_T) CAN_Sgn.UnsignedSgn);
4586
4587 /* ...... "ActlEngPrcntTrqueHighResolution" (4|4, standard signal, unsigned int, little endian) */
4588 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4589 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4590 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4591 L4_MABX_B.SFunction1_o2_p0 = 0.125 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4592 );
4593
4594 /* ...... "DriversDemandEngPercentTorque" (8|8, standard signal, unsigned int, little endian) */
4595 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4596 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4597 L4_MABX_B.SFunction1_o3_n1 = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4598 );
4599
4600 /* ...... "ActualEngPercentTorque" (16|8, standard signal, unsigned int, little endian) */
4601 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4602 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4603 L4_MABX_B.SFunction1_o4_j0 = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4604 );
4605
4606 /* ...... "EngSpeed" (24|16, standard signal, unsigned int, little endian) */
4607 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4608 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
4609 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4610 L4_MABX_B.SFunction1_o5_mg = 0.125 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4611 );
4612
4613 /* ...... "SrcAddrssOfCtrllngDvcFrEngCntrl" (40|8, standard signal, unsigned int, little endian) */
4614 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4615 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4616 L4_MABX_B.SFunction1_o6_k3 = ((real_T) CAN_Sgn.UnsignedSgn);
4617
4618 /* ...... "EngStarterMode" (48|4, standard signal, unsigned int, little endian) */
4619 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4620 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4621 L4_MABX_B.SFunction1_o7_ow = ((real_T) CAN_Sgn.UnsignedSgn);
4622
4623 /* ...... "EngDemandPercentTorque" (56|8, standard signal, unsigned int, little endian) */
4624 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4625 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4626 L4_MABX_B.SFunction1_o8_gl = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4627 );
4628 }
4629 }
4630 } else {
4631 /* set RX status to 0 because no new message has arrived */
4632 L4_MABX_B.SFunction1_o9_nu = 0.0;
4633 }
4634 }
4635 }
4636
4637 /* End of Constant: '<S439>/Enable_RX_EEC1_00' */
4638 /* End of Outputs for SubSystem: '<S567>/EEC1_001' */
4639
4640 /* Outputs for Enabled SubSystem: '<S571>/EEC3_001' incorporates:
4641 * EnablePort: '<S572>/Enable'
4642 */
4643 /* Constant: '<S441>/Enable_RX_EEC3_00' */
4644 if (L4_MABX_P.Enable_RX_EEC3_00_Value) {
4645 /* S-Function (rti_commonblock): '<S572>/S-Function1' */
4646 /* This comment workarounds a code generation problem */
4647
4648 /* dSPACE RTICAN RX Message Block: "EEC3_00" Id:419356416 */
4649 {
4650 UInt32 *CAN_Msg;
4651 static dsfloat time_old = 0.0;
4652
4653 /* Read status and timestamp info (previous message) */
4654 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].timestamp !=
4655 time_old) {
4656 /* ... save timestamp info for the calculation of the RX status
4657 during the consecutive sample hit*/
4658 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].
4659 timestamp;
4660
4661 /* ... set the processed flag to one */
4662 L4_MABX_B.SFunction1_o3_m3 = 1.0;
4663 L4_MABX_B.SFunction1_o4_e0 = (real_T)
4664 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].timestamp;
4665 L4_MABX_B.SFunction1_o5_g = (real_T)
4666 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].deltatime;
4667 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].data;
4668
4669 /* Decode CAN message */
4670 {
4671 {
4672 rtican_Signal_t CAN_Sgn;
4673
4674 /* ...... "SPN514_NominalFrictionPercentTorque" (0|8, standard signal, unsigned int, little endian) */
4675 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4676 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4677 L4_MABX_B.SFunction1_o1_lm = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4678 );
4679
4680 /* ...... "SPN2978_EstEngParasiticLossesPercentTorque" (32|8, standard signal, unsigned int, little endian) */
4681 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4682 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4683 L4_MABX_B.SFunction1_o2_hd = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4684 );
4685 }
4686 }
4687 } else {
4688 /* set RX status to 0 because no new message has arrived */
4689 L4_MABX_B.SFunction1_o3_m3 = 0.0;
4690 }
4691 }
4692 }
4693
4694 /* End of Constant: '<S441>/Enable_RX_EEC3_00' */
4695 /* End of Outputs for SubSystem: '<S571>/EEC3_001' */
4696
4697 /* DataTypeConversion: '<S571>/Data Type Conversion2' */
4698 L4_MABX_B.SPN514_NominalFrictionPercentTo = L4_MABX_B.SFunction1_o1_lm;
4699
4700 /* DataTypeConversion: '<S571>/Data Type Conversion1' */
4701 L4_MABX_B.SPN2978_EstEngParasiticLossesPe = L4_MABX_B.SFunction1_o2_hd;
4702
4703 /* Outputs for Enabled SubSystem: '<S514>/CVW_0B1' incorporates:
4704 * EnablePort: '<S515>/Enable'
4705 */
4706 /* Constant: '<S434>/Constant' */
4707 if (L4_MABX_P.Constant_Value_p1x) {
4708 /* S-Function (rti_commonblock): '<S515>/S-Function1' */
4709 /* This comment workarounds a code generation problem */
4710
4711 /* dSPACE RTICAN RX Message Block: "CVW_0B" Id:419328011 */
4712 {
4713 UInt32 *CAN_Msg;
4714 static dsfloat time_old = 0.0;
4715
4716 /* Read status and timestamp info (previous message) */
4717 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].timestamp !=
4718 time_old) {
4719 /* ... save timestamp info for the calculation of the RX status
4720 during the consecutive sample hit*/
4721 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].
4722 timestamp;
4723
4724 /* ... set the processed flag to one */
4725 L4_MABX_B.SFunction1_o2_iqn = 1.0;
4726 L4_MABX_B.SFunction1_o3_nj = (real_T)
4727 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].timestamp;
4728 L4_MABX_B.SFunction1_o4_ex = (real_T)
4729 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].deltatime;
4730 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].data;
4731
4732 /* Decode CAN message */
4733 {
4734 {
4735 rtican_Signal_t CAN_Sgn;
4736
4737 /* ...... "SPN1760_GrossCombinationVehicleWeight" (16|16, standard signal, unsigned int, little endian) */
4738 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4739 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
4740 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4741 L4_MABX_B.SFunction1_o1_b = 10 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4742 }
4743 }
4744 } else {
4745 /* set RX status to 0 because no new message has arrived */
4746 L4_MABX_B.SFunction1_o2_iqn = 0.0;
4747 }
4748 }
4749 }
4750
4751 /* End of Constant: '<S434>/Constant' */
4752 /* End of Outputs for SubSystem: '<S514>/CVW_0B1' */
4753
4754 /* DataTypeConversion: '<S514>/Data Type Conversion1' */
4755 L4_MABX_B.SPN1760_GrossCombinationVehicle = L4_MABX_B.SFunction1_o1_b;
4756
4757 /* Outputs for Enabled SubSystem: '<S495>/ACC1_2A_' incorporates:
4758 * EnablePort: '<S496>/Enable'
4759 */
4760 /* Constant: '<S425>/Constant' */
4761 if (L4_MABX_P.Constant_Value_fr) {
4762 /* S-Function (rti_commonblock): '<S496>/S-Function1' */
4763 /* This comment workarounds a code generation problem */
4764
4765 /* dSPACE RTICAN RX Message Block: "ACC1_2A" Id:285110058 */
4766 {
4767 UInt32 *CAN_Msg;
4768 static dsfloat time_old = 0.0;
4769
4770 /* Read status and timestamp info (previous message) */
4771 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].timestamp !=
4772 time_old) {
4773 /* ... save timestamp info for the calculation of the RX status
4774 during the consecutive sample hit*/
4775 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].
4776 timestamp;
4777
4778 /* ... set the processed flag to one */
4779 L4_MABX_B.SFunction1_o11_ex = 1.0;
4780 L4_MABX_B.SFunction1_o12_l = (real_T)
4781 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].timestamp;
4782 L4_MABX_B.SFunction1_o13_h = (real_T)
4783 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].deltatime;
4784 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].data;
4785
4786 /* Decode CAN message */
4787 {
4788 {
4789 rtican_Signal_t CAN_Sgn;
4790
4791 /* ...... "SpeedOfForwardVehicle" (0|8, standard signal, unsigned int, little endian) */
4792 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4793 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4794 L4_MABX_B.SFunction1_o1_po = ((real_T) CAN_Sgn.UnsignedSgn);
4795
4796 /* ...... "DistanceToForwardVehicle" (8|8, standard signal, unsigned int, little endian) */
4797 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4798 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4799 L4_MABX_B.SFunction1_o2_nw = ((real_T) CAN_Sgn.UnsignedSgn);
4800
4801 /* ...... "AdaptiveCruiseCtrlSetSpeed" (16|8, standard signal, unsigned int, little endian) */
4802 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4803 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4804 L4_MABX_B.SFunction1_o3_hn = ((real_T) CAN_Sgn.UnsignedSgn);
4805
4806 /* ...... "AdaptiveCruiseCtrlMode" (24|3, standard signal, unsigned int, little endian) */
4807 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4808 CAN_Sgn.UnsignedSgn &= 0x00000007;
4809 L4_MABX_B.SFunction1_o4_p4l = ((real_T) CAN_Sgn.UnsignedSgn);
4810
4811 /* ...... "AdptveCruiseCtrlSetDistanceMode" (27|3, standard signal, unsigned int, little endian) */
4812 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4813 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
4814 CAN_Sgn.UnsignedSgn &= 0x00000007;
4815 L4_MABX_B.SFunction1_o5_mp = ((real_T) CAN_Sgn.UnsignedSgn);
4816
4817 /* ...... "RoadCurvature" (32|16, standard signal, unsigned int, little endian) */
4818 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4819 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
4820 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4821 L4_MABX_B.SFunction1_o6_iy = -250 + ( 0.0078125 * ( ((real_T)
4822 CAN_Sgn.UnsignedSgn) ) );
4823
4824 /* ...... "ACCTargetDetected" (48|2, standard signal, unsigned int, little endian) */
4825 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4826 CAN_Sgn.UnsignedSgn &= 0x00000003;
4827 L4_MABX_B.SFunction1_o7_oe = ((real_T) CAN_Sgn.UnsignedSgn);
4828
4829 /* ...... "ACCSystemShutoffWarning" (50|2, standard signal, unsigned int, little endian) */
4830 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4831 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4832 CAN_Sgn.UnsignedSgn &= 0x00000003;
4833 L4_MABX_B.SFunction1_o8_c5 = ((real_T) CAN_Sgn.UnsignedSgn);
4834
4835 /* ...... "ACCDistanceAlertSignal" (52|2, standard signal, unsigned int, little endian) */
4836 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4837 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4838 CAN_Sgn.UnsignedSgn &= 0x00000003;
4839 L4_MABX_B.SFunction1_o9_ix = ((real_T) CAN_Sgn.UnsignedSgn);
4840
4841 /* ...... "ForwardCollisionWarning" (54|2, standard signal, unsigned int, little endian) */
4842 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4843 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4844 CAN_Sgn.UnsignedSgn &= 0x00000003;
4845 L4_MABX_B.SFunction1_o10_at = ((real_T) CAN_Sgn.UnsignedSgn);
4846 }
4847 }
4848 } else {
4849 /* set RX status to 0 because no new message has arrived */
4850 L4_MABX_B.SFunction1_o11_ex = 0.0;
4851 }
4852 }
4853 }
4854
4855 /* End of Constant: '<S425>/Constant' */
4856 /* End of Outputs for SubSystem: '<S495>/ACC1_2A_' */
4857
4858 /* DataTypeConversion: '<S495>/Data Type Conversion12' */
4859 L4_MABX_B.ACCDistanceAlertSignal = L4_MABX_B.SFunction1_o9_ix;
4860
4861 /* DataTypeConversion: '<S495>/Data Type Conversion13' */
4862 L4_MABX_B.ForwardCollisionWarning = L4_MABX_B.SFunction1_o10_at;
4863
4864 /* RelationalOperator: '<S480>/Operator' incorporates:
4865 * Constant: '<S423>/Constant'
4866 * Constant: '<S478>/Constant'
4867 */
4868 L4_MABX_B.Operator_gd = (L4_MABX_P.Constant_Value_cu ==
4869 L4_MABX_P.Constant_Value_mw);
4870
4871 /* Outputs for Enabled SubSystem: '<S477>/CAN_TYPE1_RX_M1_C1' incorporates:
4872 * EnablePort: '<S479>/Enable'
4873 */
4874 if (L4_MABX_B.Operator_gd) {
4875 /* S-Function (rti_commonblock): '<S479>/S-Function1' */
4876 /* This comment workarounds a code generation problem */
4877
4878 /* dSPACE RTICAN RX Message Block: "TPCM_FF_00" Id:485293824 */
4879 {
4880 UInt32 *CAN_Msg;
4881 static dsfloat time_old = 0.0;
4882
4883 /* Read status and timestamp info (previous message) */
4884 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].timestamp !=
4885 time_old) {
4886 /* ... save timestamp info for the calculation of the RX status
4887 during the consecutive sample hit*/
4888 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].
4889 timestamp;
4890
4891 /* ... set the processed flag to one */
4892 L4_MABX_B.SFunction1_o9_dj = 1.0;
4893 L4_MABX_B.SFunction1_o10_cs = (real_T)
4894 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].timestamp;
4895 L4_MABX_B.SFunction1_o11_mb = (real_T)
4896 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].deltatime;
4897 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].data;
4898
4899 /* Decode CAN message */
4900 {
4901 {
4902 rtican_Signal_t CAN_Sgn;
4903
4904 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
4905 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4906 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4907 L4_MABX_B.SFunction1_o1_g = ((real_T) CAN_Sgn.UnsignedSgn);
4908
4909 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
4910 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4911 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4912 L4_MABX_B.SFunction1_o2_jr = ((real_T) CAN_Sgn.UnsignedSgn);
4913
4914 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
4915 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4916 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4917 L4_MABX_B.SFunction1_o3_bl = ((real_T) CAN_Sgn.UnsignedSgn);
4918
4919 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
4920 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4921 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4922 L4_MABX_B.SFunction1_o4_nb = ((real_T) CAN_Sgn.UnsignedSgn);
4923
4924 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
4925 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4926 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4927 L4_MABX_B.SFunction1_o5_o3 = ((real_T) CAN_Sgn.UnsignedSgn);
4928
4929 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
4930 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4931 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4932 L4_MABX_B.SFunction1_o6_ny = ((real_T) CAN_Sgn.UnsignedSgn);
4933
4934 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
4935 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4936 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4937 L4_MABX_B.SFunction1_o7_n = ((real_T) CAN_Sgn.UnsignedSgn);
4938
4939 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
4940 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4941 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4942 L4_MABX_B.SFunction1_o8_fx = ((real_T) CAN_Sgn.UnsignedSgn);
4943 }
4944 }
4945 } else {
4946 /* set RX status to 0 because no new message has arrived */
4947 L4_MABX_B.SFunction1_o9_dj = 0.0;
4948 }
4949 }
4950 }
4951
4952 /* End of Outputs for SubSystem: '<S477>/CAN_TYPE1_RX_M1_C1' */
4953
4954 /* DataTypeConversion: '<S477>/Data Type Conversion' */
4955 PositionFinalLimited = L4_MABX_B.SFunction1_o1_g;
4956 if (PositionFinalLimited < 256.0) {
4957 if (PositionFinalLimited >= 0.0) {
4958 starting_index = (uint8_T)PositionFinalLimited;
4959 } else {
4960 starting_index = 0U;
4961 }
4962 } else {
4963 starting_index = MAX_uint8_T;
4964 }
4965
4966 L4_MABX_B.DataTypeConversion_e3 = starting_index;
4967
4968 /* End of DataTypeConversion: '<S477>/Data Type Conversion' */
4969
4970 /* DataTypeConversion: '<S477>/Data Type Conversion1' */
4971 PositionFinalLimited = L4_MABX_B.SFunction1_o2_jr;
4972 if (PositionFinalLimited < 256.0) {
4973 if (PositionFinalLimited >= 0.0) {
4974 starting_index = (uint8_T)PositionFinalLimited;
4975 } else {
4976 starting_index = 0U;
4977 }
4978 } else {
4979 starting_index = MAX_uint8_T;
4980 }
4981
4982 L4_MABX_B.DataTypeConversion1_lt = starting_index;
4983
4984 /* End of DataTypeConversion: '<S477>/Data Type Conversion1' */
4985
4986 /* DataTypeConversion: '<S477>/Data Type Conversion2' */
4987 PositionFinalLimited = L4_MABX_B.SFunction1_o3_bl;
4988 if (PositionFinalLimited < 256.0) {
4989 if (PositionFinalLimited >= 0.0) {
4990 starting_index = (uint8_T)PositionFinalLimited;
4991 } else {
4992 starting_index = 0U;
4993 }
4994 } else {
4995 starting_index = MAX_uint8_T;
4996 }
4997
4998 L4_MABX_B.DataTypeConversion2_gk = starting_index;
4999
5000 /* End of DataTypeConversion: '<S477>/Data Type Conversion2' */
5001
5002 /* DataTypeConversion: '<S477>/Data Type Conversion3' */
5003 PositionFinalLimited = L4_MABX_B.SFunction1_o4_nb;
5004 if (PositionFinalLimited < 256.0) {
5005 if (PositionFinalLimited >= 0.0) {
5006 starting_index = (uint8_T)PositionFinalLimited;
5007 } else {
5008 starting_index = 0U;
5009 }
5010 } else {
5011 starting_index = MAX_uint8_T;
5012 }
5013
5014 L4_MABX_B.DataTypeConversion3_m3 = starting_index;
5015
5016 /* End of DataTypeConversion: '<S477>/Data Type Conversion3' */
5017
5018 /* DataTypeConversion: '<S477>/Data Type Conversion4' */
5019 PositionFinalLimited = L4_MABX_B.SFunction1_o5_o3;
5020 if (PositionFinalLimited < 256.0) {
5021 if (PositionFinalLimited >= 0.0) {
5022 starting_index = (uint8_T)PositionFinalLimited;
5023 } else {
5024 starting_index = 0U;
5025 }
5026 } else {
5027 starting_index = MAX_uint8_T;
5028 }
5029
5030 L4_MABX_B.DataTypeConversion4_ad = starting_index;
5031
5032 /* End of DataTypeConversion: '<S477>/Data Type Conversion4' */
5033
5034 /* DataTypeConversion: '<S477>/Data Type Conversion5' */
5035 PositionFinalLimited = L4_MABX_B.SFunction1_o6_ny;
5036 if (PositionFinalLimited < 256.0) {
5037 if (PositionFinalLimited >= 0.0) {
5038 starting_index = (uint8_T)PositionFinalLimited;
5039 } else {
5040 starting_index = 0U;
5041 }
5042 } else {
5043 starting_index = MAX_uint8_T;
5044 }
5045
5046 L4_MABX_B.DataTypeConversion5_d = starting_index;
5047
5048 /* End of DataTypeConversion: '<S477>/Data Type Conversion5' */
5049
5050 /* DataTypeConversion: '<S477>/Data Type Conversion6' */
5051 PositionFinalLimited = L4_MABX_B.SFunction1_o7_n;
5052 if (PositionFinalLimited < 256.0) {
5053 if (PositionFinalLimited >= 0.0) {
5054 starting_index = (uint8_T)PositionFinalLimited;
5055 } else {
5056 starting_index = 0U;
5057 }
5058 } else {
5059 starting_index = MAX_uint8_T;
5060 }
5061
5062 L4_MABX_B.DataTypeConversion6_na = starting_index;
5063
5064 /* End of DataTypeConversion: '<S477>/Data Type Conversion6' */
5065
5066 /* DataTypeConversion: '<S477>/Data Type Conversion7' */
5067 PositionFinalLimited = L4_MABX_B.SFunction1_o8_fx;
5068 if (PositionFinalLimited < 256.0) {
5069 if (PositionFinalLimited >= 0.0) {
5070 starting_index = (uint8_T)PositionFinalLimited;
5071 } else {
5072 starting_index = 0U;
5073 }
5074 } else {
5075 starting_index = MAX_uint8_T;
5076 }
5077
5078 L4_MABX_B.DataTypeConversion7_g = starting_index;
5079
5080 /* End of DataTypeConversion: '<S477>/Data Type Conversion7' */
5081
5082 /* MultiPortSwitch: '<S423>/Multiport_Switch' */
5083 L4_MABX_B.RawData[0] = L4_MABX_B.DataTypeConversion_e3;
5084 L4_MABX_B.RawData[1] = L4_MABX_B.DataTypeConversion1_lt;
5085 L4_MABX_B.RawData[2] = L4_MABX_B.DataTypeConversion2_gk;
5086 L4_MABX_B.RawData[3] = L4_MABX_B.DataTypeConversion3_m3;
5087 L4_MABX_B.RawData[4] = L4_MABX_B.DataTypeConversion4_ad;
5088 L4_MABX_B.RawData[5] = L4_MABX_B.DataTypeConversion5_d;
5089 L4_MABX_B.RawData[6] = L4_MABX_B.DataTypeConversion6_na;
5090 L4_MABX_B.RawData[7] = L4_MABX_B.DataTypeConversion7_g;
5091
5092 /* DataTypeConversion: '<S471>/Data Type Conversion' */
5093 for (i = 0; i < 8; i++) {
5094 L4_MABX_B.DataTypeConversion_b5[i] = L4_MABX_B.RawData[i];
5095 }
5096
5097 /* End of DataTypeConversion: '<S471>/Data Type Conversion' */
5098
5099 /* RelationalOperator: '<S697>/Operator' incorporates:
5100 * Constant: '<S471>/Constant3'
5101 */
5102 L4_MABX_B.Operator_bo = (L4_MABX_B.DataTypeConversion_b5[0] ==
5103 L4_MABX_P.Constant3_Value_eq);
5104
5105 /* Outputs for Enabled SubSystem: '<S471>/Decode_TPCM_BAM' incorporates:
5106 * EnablePort: '<S689>/Enable'
5107 */
5108 if (L4_MABX_B.Operator_bo) {
5109 /* SignalConversion: '<S700>/Signal Conversion' */
5110 L4_MABX_B.SPN2556_ControlByte_c = L4_MABX_B.DataTypeConversion_b5[0];
5111
5112 /* DataTypeConversion: '<S701>/Data Type Conversion' */
5113 L4_MABX_B.DataTypeConversion_pn = L4_MABX_B.DataTypeConversion_b5[1];
5114
5115 /* DataTypeConversion: '<S701>/Data Type Conversion1' */
5116 L4_MABX_B.DataTypeConversion1_ao = L4_MABX_B.DataTypeConversion_b5[2];
5117
5118 /* ArithShift: '<S701>/Shift Arithmetic2' */
5119 L4_MABX_B.ShiftArithmetic2_ke = (uint16_T)(L4_MABX_B.DataTypeConversion1_ao <<
5120 8);
5121
5122 /* S-Function (sfix_bitop): '<S704>/Operator' */
5123 L4_MABX_B.Operator_mp = (uint16_T)(L4_MABX_B.DataTypeConversion_pn |
5124 L4_MABX_B.ShiftArithmetic2_ke);
5125
5126 /* DataTypeConversion: '<S704>/DataType' */
5127 L4_MABX_B.DataType_aya = L4_MABX_B.Operator_mp;
5128
5129 /* SignalConversion: '<S702>/Signal Conversion' */
5130 L4_MABX_B.SPN2568_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_b5[3];
5131
5132 /* DataTypeConversion: '<S703>/Data Type Conversion' */
5133 L4_MABX_B.DataTypeConversion_f3 = L4_MABX_B.DataTypeConversion_b5[5];
5134
5135 /* DataTypeConversion: '<S703>/Data Type Conversion1' */
5136 L4_MABX_B.DataTypeConversion1_g = L4_MABX_B.DataTypeConversion_b5[6];
5137
5138 /* DataTypeConversion: '<S703>/Data Type Conversion2' */
5139 L4_MABX_B.DataTypeConversion2_m5 = L4_MABX_B.DataTypeConversion_b5[7];
5140
5141 /* ArithShift: '<S703>/Shift Arithmetic1' */
5142 L4_MABX_B.ShiftArithmetic1_o = L4_MABX_B.DataTypeConversion1_g << 8;
5143
5144 /* ArithShift: '<S703>/Shift Arithmetic2' */
5145 L4_MABX_B.ShiftArithmetic2_m = L4_MABX_B.DataTypeConversion2_m5 << 16;
5146
5147 /* S-Function (sfix_bitop): '<S705>/Operator' */
5148 L4_MABX_B.Operator_jt = L4_MABX_B.DataTypeConversion_f3 |
5149 L4_MABX_B.ShiftArithmetic1_o | L4_MABX_B.ShiftArithmetic2_m;
5150
5151 /* DataTypeConversion: '<S705>/DataType' */
5152 L4_MABX_B.DataType_fh = L4_MABX_B.Operator_jt;
5153 }
5154
5155 /* End of Outputs for SubSystem: '<S471>/Decode_TPCM_BAM' */
5156
5157 /* RelationalOperator: '<S489>/Operator' incorporates:
5158 * Constant: '<S424>/Constant'
5159 * Constant: '<S487>/Constant'
5160 */
5161 L4_MABX_B.Operator_i0 = (L4_MABX_P.Constant_Value_oy ==
5162 L4_MABX_P.Constant_Value_lx);
5163
5164 /* Outputs for Enabled SubSystem: '<S486>/CAN_TYPE1_RX_M1_C1' incorporates:
5165 * EnablePort: '<S488>/Enable'
5166 */
5167 if (L4_MABX_B.Operator_i0) {
5168 /* S-Function (rti_commonblock): '<S488>/S-Function1' */
5169 /* This comment workarounds a code generation problem */
5170
5171 /* dSPACE RTICAN RX Message Block: "TPDT_FF_00" Id:485228288 */
5172 {
5173 UInt32 *CAN_Msg;
5174 static dsfloat time_old = 0.0;
5175
5176 /* Read status and timestamp info (previous message) */
5177 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].timestamp !=
5178 time_old) {
5179 /* ... save timestamp info for the calculation of the RX status
5180 during the consecutive sample hit*/
5181 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].
5182 timestamp;
5183
5184 /* ... set the processed flag to one */
5185 L4_MABX_B.SFunction1_o9_d4 = 1.0;
5186 L4_MABX_B.SFunction1_o10_atw = (real_T)
5187 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].timestamp;
5188 L4_MABX_B.SFunction1_o11_da = (real_T)
5189 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].deltatime;
5190 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].data;
5191
5192 /* Decode CAN message */
5193 {
5194 {
5195 rtican_Signal_t CAN_Sgn;
5196
5197 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
5198 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5199 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5200 L4_MABX_B.SFunction1_o1_jl = ((real_T) CAN_Sgn.UnsignedSgn);
5201
5202 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
5203 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5204 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5205 L4_MABX_B.SFunction1_o2_k4 = ((real_T) CAN_Sgn.UnsignedSgn);
5206
5207 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
5208 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5209 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5210 L4_MABX_B.SFunction1_o3_kd = ((real_T) CAN_Sgn.UnsignedSgn);
5211
5212 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
5213 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5214 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5215 L4_MABX_B.SFunction1_o4_ld = ((real_T) CAN_Sgn.UnsignedSgn);
5216
5217 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
5218 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
5219 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5220 L4_MABX_B.SFunction1_o5_hu = ((real_T) CAN_Sgn.UnsignedSgn);
5221
5222 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
5223 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5224 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5225 L4_MABX_B.SFunction1_o6_iw = ((real_T) CAN_Sgn.UnsignedSgn);
5226
5227 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
5228 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5229 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5230 L4_MABX_B.SFunction1_o7_iw = ((real_T) CAN_Sgn.UnsignedSgn);
5231
5232 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
5233 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5234 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5235 L4_MABX_B.SFunction1_o8_ju = ((real_T) CAN_Sgn.UnsignedSgn);
5236 }
5237 }
5238 } else {
5239 /* set RX status to 0 because no new message has arrived */
5240 L4_MABX_B.SFunction1_o9_d4 = 0.0;
5241 }
5242 }
5243 }
5244
5245 /* End of Outputs for SubSystem: '<S486>/CAN_TYPE1_RX_M1_C1' */
5246
5247 /* DataTypeConversion: '<S486>/Data Type Conversion' */
5248 PositionFinalLimited = L4_MABX_B.SFunction1_o1_jl;
5249 if (PositionFinalLimited < 256.0) {
5250 if (PositionFinalLimited >= 0.0) {
5251 starting_index = (uint8_T)PositionFinalLimited;
5252 } else {
5253 starting_index = 0U;
5254 }
5255 } else {
5256 starting_index = MAX_uint8_T;
5257 }
5258
5259 L4_MABX_B.DataTypeConversion_do = starting_index;
5260
5261 /* End of DataTypeConversion: '<S486>/Data Type Conversion' */
5262
5263 /* DataTypeConversion: '<S486>/Data Type Conversion1' */
5264 PositionFinalLimited = L4_MABX_B.SFunction1_o2_k4;
5265 if (PositionFinalLimited < 256.0) {
5266 if (PositionFinalLimited >= 0.0) {
5267 starting_index = (uint8_T)PositionFinalLimited;
5268 } else {
5269 starting_index = 0U;
5270 }
5271 } else {
5272 starting_index = MAX_uint8_T;
5273 }
5274
5275 L4_MABX_B.DataTypeConversion1_fi = starting_index;
5276
5277 /* End of DataTypeConversion: '<S486>/Data Type Conversion1' */
5278
5279 /* DataTypeConversion: '<S486>/Data Type Conversion2' */
5280 PositionFinalLimited = L4_MABX_B.SFunction1_o3_kd;
5281 if (PositionFinalLimited < 256.0) {
5282 if (PositionFinalLimited >= 0.0) {
5283 starting_index = (uint8_T)PositionFinalLimited;
5284 } else {
5285 starting_index = 0U;
5286 }
5287 } else {
5288 starting_index = MAX_uint8_T;
5289 }
5290
5291 L4_MABX_B.DataTypeConversion2_kq = starting_index;
5292
5293 /* End of DataTypeConversion: '<S486>/Data Type Conversion2' */
5294
5295 /* DataTypeConversion: '<S486>/Data Type Conversion3' */
5296 PositionFinalLimited = L4_MABX_B.SFunction1_o4_ld;
5297 if (PositionFinalLimited < 256.0) {
5298 if (PositionFinalLimited >= 0.0) {
5299 starting_index = (uint8_T)PositionFinalLimited;
5300 } else {
5301 starting_index = 0U;
5302 }
5303 } else {
5304 starting_index = MAX_uint8_T;
5305 }
5306
5307 L4_MABX_B.DataTypeConversion3_f5 = starting_index;
5308
5309 /* End of DataTypeConversion: '<S486>/Data Type Conversion3' */
5310
5311 /* DataTypeConversion: '<S486>/Data Type Conversion4' */
5312 PositionFinalLimited = L4_MABX_B.SFunction1_o5_hu;
5313 if (PositionFinalLimited < 256.0) {
5314 if (PositionFinalLimited >= 0.0) {
5315 starting_index = (uint8_T)PositionFinalLimited;
5316 } else {
5317 starting_index = 0U;
5318 }
5319 } else {
5320 starting_index = MAX_uint8_T;
5321 }
5322
5323 L4_MABX_B.DataTypeConversion4_p = starting_index;
5324
5325 /* End of DataTypeConversion: '<S486>/Data Type Conversion4' */
5326
5327 /* DataTypeConversion: '<S486>/Data Type Conversion5' */
5328 PositionFinalLimited = L4_MABX_B.SFunction1_o6_iw;
5329 if (PositionFinalLimited < 256.0) {
5330 if (PositionFinalLimited >= 0.0) {
5331 starting_index = (uint8_T)PositionFinalLimited;
5332 } else {
5333 starting_index = 0U;
5334 }
5335 } else {
5336 starting_index = MAX_uint8_T;
5337 }
5338
5339 L4_MABX_B.DataTypeConversion5_di = starting_index;
5340
5341 /* End of DataTypeConversion: '<S486>/Data Type Conversion5' */
5342
5343 /* DataTypeConversion: '<S486>/Data Type Conversion6' */
5344 PositionFinalLimited = L4_MABX_B.SFunction1_o7_iw;
5345 if (PositionFinalLimited < 256.0) {
5346 if (PositionFinalLimited >= 0.0) {
5347 starting_index = (uint8_T)PositionFinalLimited;
5348 } else {
5349 starting_index = 0U;
5350 }
5351 } else {
5352 starting_index = MAX_uint8_T;
5353 }
5354
5355 L4_MABX_B.DataTypeConversion6_h = starting_index;
5356
5357 /* End of DataTypeConversion: '<S486>/Data Type Conversion6' */
5358
5359 /* DataTypeConversion: '<S486>/Data Type Conversion7' */
5360 PositionFinalLimited = L4_MABX_B.SFunction1_o8_ju;
5361 if (PositionFinalLimited < 256.0) {
5362 if (PositionFinalLimited >= 0.0) {
5363 starting_index = (uint8_T)PositionFinalLimited;
5364 } else {
5365 starting_index = 0U;
5366 }
5367 } else {
5368 starting_index = MAX_uint8_T;
5369 }
5370
5371 L4_MABX_B.DataTypeConversion7_h = starting_index;
5372
5373 /* End of DataTypeConversion: '<S486>/Data Type Conversion7' */
5374
5375 /* MultiPortSwitch: '<S424>/Multiport_Switch' */
5376 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_do;
5377 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_fi;
5378 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_kq;
5379 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_f5;
5380 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_p;
5381 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_di;
5382 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_h;
5383 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_h;
5384
5385 /* DataTypeConversion: '<S472>/Data Type Conversion' */
5386 for (i = 0; i < 8; i++) {
5387 L4_MABX_B.DataTypeConversion_g[i] = L4_MABX_B.RawData_h[i];
5388 }
5389
5390 /* End of DataTypeConversion: '<S472>/Data Type Conversion' */
5391
5392 /* S-Function (rti_commonblock): '<S850>/S-Function1' */
5393
5394 /* This comment workarounds a code generation problem */
5395
5396 /* End of Outputs for S-Function (rti_commonblock): '<S850>/S-Function1' */
5397
5398 /* RateTransition: '<S419>/Rate Transition' */
5399 switch (L4_MABX_DW.RateTransition_write_buf) {
5400 case 0:
5401 L4_MABX_DW.RateTransition_read_buf = 1;
5402 break;
5403
5404 case 1:
5405 L4_MABX_DW.RateTransition_read_buf = 0;
5406 break;
5407
5408 default:
5409 L4_MABX_DW.RateTransition_read_buf = L4_MABX_DW.RateTransition_last_buf_wr;
5410 break;
5411 }
5412
5413 if (L4_MABX_DW.RateTransition_read_buf != 0) {
5414 GLB_Absolute_Timestamp = L4_MABX_DW.RateTransition_Buffer1;
5415 } else {
5416 GLB_Absolute_Timestamp = L4_MABX_DW.RateTransition_Buffer0;
5417 }
5418
5419 L4_MABX_DW.RateTransition_read_buf = -1;
5420
5421 /* End of RateTransition: '<S419>/Rate Transition' */
5422
5423 /* DataTypeConversion: '<S486>/Data Type Conversion8' */
5424 L4_MABX_B.RX_status = (L4_MABX_B.SFunction1_o9_d4 != 0.0);
5425
5426 /* MultiPortSwitch: '<S424>/Multiport_Switch' */
5427 L4_MABX_B.RX_status_c = L4_MABX_B.RX_status;
5428
5429 /* RelationalOperator: '<S524>/Operator' incorporates:
5430 * Constant: '<S438>/Constant2'
5431 */
5432 L4_MABX_B.Operator_ju = (L4_MABX_B.DataType_fh == L4_MABX_P.Constant2_Value_ki);
5433
5434 /* Logic: '<S438>/Logical Operator' */
5435 L4_MABX_B.LogicalOperator_h = (L4_MABX_B.RX_status_c && L4_MABX_B.Operator_ju);
5436
5437 /* Outputs for Enabled SubSystem: '<S438>/CAN_RX_EC1_00' incorporates:
5438 * EnablePort: '<S522>/Enable'
5439 */
5440 if (L4_MABX_B.LogicalOperator_h) {
5441 /* UnitDelay: '<S522>/Unit Delay' */
5442 for (i = 0; i < 39; i++) {
5443 L4_MABX_B.UnitDelay_pe[i] = L4_MABX_DW.UnitDelay_DSTATE_g[i];
5444 }
5445
5446 /* End of UnitDelay: '<S522>/Unit Delay' */
5447
5448 /* MATLAB Function: '<S522>/serialize_tpdt' */
5449 /* MATLAB Function 'INPUTS_PIC_KW/CAN_PIC_KW/CAN_RX_EC1_00/CAN_RX_EC1_00/serialize_tpdt': '<S526>:1' */
5450 /* '<S526>:1:9' */
5451 if (L4_MABX_B.DataTypeConversion_g[0] > 1) {
5452 /* '<S526>:1:6' */
5453 /* '<S526>:1:7' */
5454 for (i = 0; i < 39; i++) {
5455 L4_MABX_B.Data_a[i] = L4_MABX_B.UnitDelay_pe[i];
5456 }
5457 } else {
5458 /* '<S526>:1:9' */
5459 for (i = 0; i < 39; i++) {
5460 L4_MABX_B.Data_a[i] = MAX_uint8_T;
5461 }
5462 }
5463
5464 /* '<S526>:1:11' */
5465 i = (int32_T)(7U * L4_MABX_B.DataTypeConversion_g[0]);
5466 if ((uint32_T)i > 255U) {
5467 i = 255;
5468 }
5469
5470 tmp = i - 6U;
5471 if (tmp > (uint32_T)i) {
5472 tmp = 0U;
5473 }
5474
5475 i = (int32_T)tmp;
5476 starting_index = (uint8_T)i;
5477
5478 /* '<S526>:1:12' */
5479 L4_MABX_B.Data_a[starting_index - 1] = L4_MABX_B.DataTypeConversion_g[1];
5480 L4_MABX_B.Data_a[starting_index] = L4_MABX_B.DataTypeConversion_g[2];
5481 L4_MABX_B.Data_a[starting_index + 1] = L4_MABX_B.DataTypeConversion_g[3];
5482 L4_MABX_B.Data_a[starting_index + 2] = L4_MABX_B.DataTypeConversion_g[4];
5483 L4_MABX_B.Data_a[starting_index + 3] = L4_MABX_B.DataTypeConversion_g[5];
5484 L4_MABX_B.Data_a[starting_index + 4] = L4_MABX_B.DataTypeConversion_g[6];
5485 L4_MABX_B.Data_a[starting_index + 5] = L4_MABX_B.DataTypeConversion_g[7];
5486
5487 /* '<S526>:1:13' */
5488 L4_MABX_B.RX_status_m = (L4_MABX_B.DataTypeConversion_g[0] ==
5489 L4_MABX_B.SPN2568_TotalNumberOfPackets);
5490
5491 /* End of MATLAB Function: '<S522>/serialize_tpdt' */
5492
5493 /* Outputs for Enabled SubSystem: '<S522>/Decode' incorporates:
5494 * EnablePort: '<S525>/Enable'
5495 */
5496 if (L4_MABX_B.RX_status_m) {
5497 /* Inport: '<S525>/Inport' */
5498 for (i = 0; i < 39; i++) {
5499 L4_MABX_B.Inport_e[i] = L4_MABX_B.Data_a[i];
5500 }
5501
5502 /* End of Inport: '<S525>/Inport' */
5503
5504 /* Inport: '<S525>/timeStamp' */
5505 L4_MABX_B.timeStamp_p = GLB_Absolute_Timestamp;
5506
5507 /* UnitDelay: '<S525>/Unit_Delay' */
5508 L4_MABX_B.Unit_Delay_m = L4_MABX_DW.Unit_Delay_DSTATE_o;
5509
5510 /* Sum: '<S525>/Subtract' */
5511 L4_MABX_B.Subtract_gi = (real32_T)(L4_MABX_B.timeStamp_p -
5512 L4_MABX_B.Unit_Delay_m);
5513 }
5514
5515 /* End of Outputs for SubSystem: '<S522>/Decode' */
5516 }
5517
5518 /* End of Outputs for SubSystem: '<S438>/CAN_RX_EC1_00' */
5519
5520 /* DataTypeConversion: '<S523>/Data Type Conversion' */
5521 for (i = 0; i < 39; i++) {
5522 L4_MABX_B.DataTypeConversion_as[i] = L4_MABX_B.Inport_e[i];
5523 }
5524
5525 /* End of DataTypeConversion: '<S523>/Data Type Conversion' */
5526
5527 /* DataTypeConversion: '<S534>/Data Type Conversion' */
5528 L4_MABX_B.DataTypeConversion_m4 = L4_MABX_B.DataTypeConversion_as[19];
5529
5530 /* DataTypeConversion: '<S534>/Data Type Conversion1' */
5531 L4_MABX_B.DataTypeConversion1_o5 = L4_MABX_B.DataTypeConversion_as[20];
5532
5533 /* ArithShift: '<S534>/Shift Arithmetic' */
5534 L4_MABX_B.ShiftArithmetic = (uint16_T)(L4_MABX_B.DataTypeConversion1_o5 << 8);
5535
5536 /* S-Function (sfix_bitop): '<S559>/Operator' */
5537 L4_MABX_B.Operator_hw = (uint16_T)(L4_MABX_B.DataTypeConversion_m4 |
5538 L4_MABX_B.ShiftArithmetic);
5539
5540 /* DataTypeConversion: '<S559>/DataType' */
5541 L4_MABX_B.DataType_op = L4_MABX_B.Operator_hw;
5542
5543 /* DataTypeConversion: '<S534>/Data Type Conversion2' */
5544 L4_MABX_B.SPN544_EngineReferenceTorque = L4_MABX_B.DataType_op;
5545
5546 /* Outputs for Enabled SubSystem: '<S644>/VDC1_0B_' incorporates:
5547 * EnablePort: '<S645>/Enable'
5548 */
5549 /* Constant: '<S458>/Constant' */
5550 if (L4_MABX_P.Constant_Value_hw) {
5551 /* S-Function (rti_commonblock): '<S645>/S-Function1' */
5552 /* This comment workarounds a code generation problem */
5553
5554 /* dSPACE RTICAN RX Message Block: "VDC1_0B" Id:419319563 */
5555 {
5556 UInt32 *CAN_Msg;
5557 static dsfloat time_old = 0.0;
5558
5559 /* Read status and timestamp info (previous message) */
5560 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].timestamp !=
5561 time_old) {
5562 /* ... save timestamp info for the calculation of the RX status
5563 during the consecutive sample hit*/
5564 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].
5565 timestamp;
5566
5567 /* ... set the processed flag to one */
5568 L4_MABX_B.SFunction1_o8_n = 1.0;
5569 L4_MABX_B.SFunction1_o9_l = (real_T)
5570 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].timestamp;
5571 L4_MABX_B.SFunction1_o10 = (real_T)
5572 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].deltatime;
5573 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].data;
5574
5575 /* Decode CAN message */
5576 {
5577 {
5578 rtican_Signal_t CAN_Sgn;
5579
5580 /* ...... "VDCInformationSignal" (0|2, standard signal, unsigned int, little endian) */
5581 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5582 CAN_Sgn.UnsignedSgn &= 0x00000003;
5583 L4_MABX_B.SFunction1_o1_ju = ((real_T) CAN_Sgn.UnsignedSgn);
5584
5585 /* ...... "VDCFullyOperational" (2|2, standard signal, unsigned int, little endian) */
5586 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5587 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5588 CAN_Sgn.UnsignedSgn &= 0x00000003;
5589 L4_MABX_B.SFunction1_o2_f = ((real_T) CAN_Sgn.UnsignedSgn);
5590
5591 /* ...... "VDCBrakeLightRq" (4|2, standard signal, unsigned int, little endian) */
5592 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5593 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5594 CAN_Sgn.UnsignedSgn &= 0x00000003;
5595 L4_MABX_B.SFunction1_o3_gz = ((real_T) CAN_Sgn.UnsignedSgn);
5596
5597 /* ...... "ROPEngCtrlActive" (8|2, standard signal, unsigned int, little endian) */
5598 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5599 CAN_Sgn.UnsignedSgn &= 0x00000003;
5600 L4_MABX_B.SFunction1_o4_c = ((real_T) CAN_Sgn.UnsignedSgn);
5601
5602 /* ...... "ROPBrakeCtrlActive" (10|2, standard signal, unsigned int, little endian) */
5603 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5604 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5605 CAN_Sgn.UnsignedSgn &= 0x00000003;
5606 L4_MABX_B.SFunction1_o5_c = ((real_T) CAN_Sgn.UnsignedSgn);
5607
5608 /* ...... "YCEngCtrlActive" (12|2, standard signal, unsigned int, little endian) */
5609 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5610 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5611 CAN_Sgn.UnsignedSgn &= 0x00000003;
5612 L4_MABX_B.SFunction1_o6_o = ((real_T) CAN_Sgn.UnsignedSgn);
5613
5614 /* ...... "YCBrakeCtrlActive" (14|2, standard signal, unsigned int, little endian) */
5615 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5616 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5617 CAN_Sgn.UnsignedSgn &= 0x00000003;
5618 L4_MABX_B.SFunction1_o7_l = ((real_T) CAN_Sgn.UnsignedSgn);
5619 }
5620 }
5621 } else {
5622 /* set RX status to 0 because no new message has arrived */
5623 L4_MABX_B.SFunction1_o8_n = 0.0;
5624 }
5625 }
5626 }
5627
5628 /* End of Constant: '<S458>/Constant' */
5629 /* End of Outputs for SubSystem: '<S644>/VDC1_0B_' */
5630
5631 /* Outputs for Enabled SubSystem: '<S646>/VDC2_0B1' incorporates:
5632 * EnablePort: '<S647>/Enable'
5633 */
5634 /* Constant: '<S459>/Constant' */
5635 if (L4_MABX_P.Constant_Value_d4) {
5636 /* S-Function (rti_commonblock): '<S647>/S-Function1' */
5637 /* This comment workarounds a code generation problem */
5638
5639 /* dSPACE RTICAN RX Message Block: "VDC2_0B" Id:418384139 */
5640 {
5641 UInt32 *CAN_Msg;
5642 static dsfloat time_old = 0.0;
5643
5644 /* Read status and timestamp info (previous message) */
5645 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].timestamp !=
5646 time_old) {
5647 /* ... save timestamp info for the calculation of the RX status
5648 during the consecutive sample hit*/
5649 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].
5650 timestamp;
5651
5652 /* ... set the processed flag to one */
5653 L4_MABX_B.SFunction1_o7_m = 1.0;
5654 L4_MABX_B.SFunction1_o8_l = (real_T)
5655 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].timestamp;
5656 L4_MABX_B.SFunction1_o9 = (real_T)
5657 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].deltatime;
5658 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].data;
5659
5660 /* Decode CAN message */
5661 {
5662 {
5663 rtican_Signal_t CAN_Sgn;
5664
5665 /* ...... "SteerWheelAngle" (0|16, standard signal, unsigned int, little endian) */
5666 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5667 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5668 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5669 SteerWheelAngle = -31.374 + ( 0.0009765625 * ( ((real_T)
5670 CAN_Sgn.UnsignedSgn) ) );
5671
5672 /* ...... "SteerWheelTurnCounter" (16|6, standard signal, unsigned int, little endian) */
5673 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5674 CAN_Sgn.UnsignedSgn &= 0x0000003F;
5675 L4_MABX_B.SFunction1_o2_ix = -32 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
5676
5677 /* ...... "SteerWheelAngleSensorType" (22|2, standard signal, unsigned int, little endian) */
5678 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5679 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5680 CAN_Sgn.UnsignedSgn &= 0x00000003;
5681 L4_MABX_B.SFunction1_o3_dm = ((real_T) CAN_Sgn.UnsignedSgn);
5682
5683 /* ...... "YawRate" (24|16, standard signal, unsigned int, little endian) */
5684 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5685 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5686 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5687 YawRate = -3.92 + ( 0.0001220703125 * ( ((real_T)
5688 CAN_Sgn.UnsignedSgn) ) );
5689
5690 /* ...... "LateralAcceleration" (40|16, standard signal, unsigned int, little endian) */
5691 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5692 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
5693 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5694 L4_MABX_B.SFunction1_o5_o = -15.687 + ( 0.00048828125 * ( ((real_T)
5695 CAN_Sgn.UnsignedSgn) ) );
5696
5697 /* ...... "LongitudinalAcceleration" (56|8, standard signal, unsigned int, little endian) */
5698 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5699 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5700 SPN1810_LongitudinalAcceleration = -12.5 + ( 0.1 * ( ((real_T)
5701 CAN_Sgn.UnsignedSgn) ) );
5702 }
5703 }
5704 } else {
5705 /* set RX status to 0 because no new message has arrived */
5706 L4_MABX_B.SFunction1_o7_m = 0.0;
5707 }
5708 }
5709 }
5710
5711 /* End of Constant: '<S459>/Constant' */
5712 /* End of Outputs for SubSystem: '<S646>/VDC2_0B1' */
5713
5714 /* UnitDelay: '<S651>/Unit_Delay3' */
5715 L4_MABX_B.Unit_Delay3 = L4_MABX_DW.Unit_Delay3_DSTATE;
5716
5717 /* RelationalOperator: '<S652>/Operator' incorporates:
5718 * Constant: '<S461>/Constant2'
5719 */
5720 L4_MABX_B.Operator_jhl = (L4_MABX_B.DataType_fh ==
5721 L4_MABX_P.Constant2_Value_k0);
5722
5723 /* Logic: '<S461>/Logical Operator' */
5724 L4_MABX_B.LogicalOperator_m = (L4_MABX_B.RX_status_c && L4_MABX_B.Operator_jhl);
5725
5726 /* Outputs for Enabled SubSystem: '<S461>/CAN_RX_VI_00' incorporates:
5727 * EnablePort: '<S650>/Enable'
5728 */
5729 if (L4_MABX_B.LogicalOperator_m) {
5730 /* UnitDelay: '<S650>/Unit Delay' */
5731 for (i = 0; i < 17; i++) {
5732 L4_MABX_B.UnitDelay_gs[i] = L4_MABX_DW.UnitDelay_DSTATE_o[i];
5733 }
5734
5735 /* End of UnitDelay: '<S650>/Unit Delay' */
5736
5737 /* MATLAB Function: '<S650>/serialize_tpdt' */
5738 /* MATLAB Function 'INPUTS_PIC_KW/CAN_PIC_KW/CAN_RX_VI_00/CAN_RX_VI_00/serialize_tpdt': '<S654>:1' */
5739 /* '<S654>:1:9' */
5740 if (L4_MABX_B.DataTypeConversion_g[0] > 1) {
5741 /* '<S654>:1:6' */
5742 /* '<S654>:1:7' */
5743 for (i = 0; i < 17; i++) {
5744 L4_MABX_B.Data[i] = L4_MABX_B.UnitDelay_gs[i];
5745 }
5746 } else {
5747 /* '<S654>:1:9' */
5748 for (i = 0; i < 17; i++) {
5749 L4_MABX_B.Data[i] = MAX_uint8_T;
5750 }
5751 }
5752
5753 /* '<S654>:1:11' */
5754 i = (int32_T)(7U * L4_MABX_B.DataTypeConversion_g[0]);
5755 if ((uint32_T)i > 255U) {
5756 i = 255;
5757 }
5758
5759 tmp = i - 6U;
5760 if (tmp > (uint32_T)i) {
5761 tmp = 0U;
5762 }
5763
5764 i = (int32_T)tmp;
5765 starting_index = (uint8_T)i;
5766
5767 /* '<S654>:1:12' */
5768 L4_MABX_B.Data[starting_index - 1] = L4_MABX_B.DataTypeConversion_g[1];
5769 L4_MABX_B.Data[starting_index] = L4_MABX_B.DataTypeConversion_g[2];
5770 L4_MABX_B.Data[starting_index + 1] = L4_MABX_B.DataTypeConversion_g[3];
5771 L4_MABX_B.Data[starting_index + 2] = L4_MABX_B.DataTypeConversion_g[4];
5772 L4_MABX_B.Data[starting_index + 3] = L4_MABX_B.DataTypeConversion_g[5];
5773 L4_MABX_B.Data[starting_index + 4] = L4_MABX_B.DataTypeConversion_g[6];
5774 L4_MABX_B.Data[starting_index + 5] = L4_MABX_B.DataTypeConversion_g[7];
5775
5776 /* '<S654>:1:13' */
5777 L4_MABX_B.RX_status_lh = (L4_MABX_B.DataTypeConversion_g[0] ==
5778 L4_MABX_B.SPN2568_TotalNumberOfPackets);
5779
5780 /* End of MATLAB Function: '<S650>/serialize_tpdt' */
5781
5782 /* Outputs for Enabled SubSystem: '<S650>/Decode' incorporates:
5783 * EnablePort: '<S653>/Enable'
5784 */
5785 if (L4_MABX_B.RX_status_lh) {
5786 /* Inport: '<S653>/Inport' */
5787 for (i = 0; i < 17; i++) {
5788 L4_MABX_B.Inport[i] = L4_MABX_B.Data[i];
5789 }
5790
5791 /* End of Inport: '<S653>/Inport' */
5792
5793 /* Inport: '<S653>/timeStamp' */
5794 L4_MABX_B.timeStamp = GLB_Absolute_Timestamp;
5795
5796 /* UnitDelay: '<S653>/Unit_Delay' */
5797 L4_MABX_B.Unit_Delay_o = L4_MABX_DW.Unit_Delay_DSTATE_h;
5798
5799 /* Sum: '<S653>/Subtract' */
5800 L4_MABX_B.Subtract_fx = (real32_T)(L4_MABX_B.timeStamp -
5801 L4_MABX_B.Unit_Delay_o);
5802 }
5803
5804 /* End of Outputs for SubSystem: '<S650>/Decode' */
5805 }
5806
5807 /* End of Outputs for SubSystem: '<S461>/CAN_RX_VI_00' */
5808
5809 /* DataTypeConversion: '<S651>/Data Type Conversion' */
5810 L4_MABX_B.DataTypeConversion_lt = L4_MABX_B.Inport[0];
5811
5812 /* DataTypeConversion: '<S651>/Data Type Conversion1' */
5813 L4_MABX_B.DataTypeConversion1_k3 = L4_MABX_B.Inport[1];
5814
5815 /* DataTypeConversion: '<S651>/Data Type Conversion2' */
5816 L4_MABX_B.DataTypeConversion2_bj = L4_MABX_B.Inport[2];
5817
5818 /* DataTypeConversion: '<S651>/Data Type Conversion3' */
5819 L4_MABX_B.DataTypeConversion3_pj = L4_MABX_B.Inport[3];
5820
5821 /* DataTypeConversion: '<S651>/Data Type Conversion4' */
5822 L4_MABX_B.DataTypeConversion4_b5 = L4_MABX_B.Inport[4];
5823
5824 /* DataTypeConversion: '<S651>/Data Type Conversion5' */
5825 L4_MABX_B.DataTypeConversion5_l = L4_MABX_B.Inport[5];
5826
5827 /* DataTypeConversion: '<S651>/Data Type Conversion6' */
5828 L4_MABX_B.DataTypeConversion6_i = L4_MABX_B.Inport[6];
5829
5830 /* DataTypeConversion: '<S651>/Data Type Conversion7' */
5831 L4_MABX_B.DataTypeConversion7_gf = L4_MABX_B.Inport[7];
5832
5833 /* DataTypeConversion: '<S651>/Data Type Conversion8' */
5834 L4_MABX_B.DataTypeConversion8_j = L4_MABX_B.Inport[8];
5835
5836 /* DataTypeConversion: '<S651>/Data Type Conversion9' */
5837 L4_MABX_B.DataTypeConversion9_a = L4_MABX_B.Inport[9];
5838
5839 /* DataTypeConversion: '<S651>/Data Type Conversion10' */
5840 L4_MABX_B.DataTypeConversion10_m = L4_MABX_B.Inport[10];
5841
5842 /* DataTypeConversion: '<S651>/Data Type Conversion11' */
5843 L4_MABX_B.DataTypeConversion11_o = L4_MABX_B.Inport[11];
5844
5845 /* DataTypeConversion: '<S651>/Data Type Conversion12' */
5846 L4_MABX_B.DataTypeConversion12 = L4_MABX_B.Inport[12];
5847
5848 /* DataTypeConversion: '<S651>/Data Type Conversion14' */
5849 L4_MABX_B.DataTypeConversion14_p = L4_MABX_B.Inport[13];
5850
5851 /* DataTypeConversion: '<S651>/Data Type Conversion13' */
5852 L4_MABX_B.DataTypeConversion13_l = L4_MABX_B.Inport[14];
5853
5854 /* DataTypeConversion: '<S651>/Data Type Conversion15' */
5855 L4_MABX_B.DataTypeConversion15_k = L4_MABX_B.Inport[15];
5856
5857 /* DataTypeConversion: '<S651>/Data Type Conversion16' */
5858 L4_MABX_B.DataTypeConversion16_e = L4_MABX_B.Inport[16];
5859
5860 /* RelationalOperator: '<S651>/Relational Operator1' incorporates:
5861 * Constant: '<S651>/TRUCK_1571_VIN_CPV'
5862 */
5863 L4_MABX_B.RelationalOperator1_j[0] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[0] !=
5864 L4_MABX_B.DataTypeConversion_lt);
5865 L4_MABX_B.RelationalOperator1_j[1] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[1] !=
5866 L4_MABX_B.DataTypeConversion1_k3);
5867 L4_MABX_B.RelationalOperator1_j[2] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[2] !=
5868 L4_MABX_B.DataTypeConversion2_bj);
5869 L4_MABX_B.RelationalOperator1_j[3] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[3] !=
5870 L4_MABX_B.DataTypeConversion3_pj);
5871 L4_MABX_B.RelationalOperator1_j[4] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[4] !=
5872 L4_MABX_B.DataTypeConversion4_b5);
5873 L4_MABX_B.RelationalOperator1_j[5] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[5] !=
5874 L4_MABX_B.DataTypeConversion5_l);
5875 L4_MABX_B.RelationalOperator1_j[6] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[6] !=
5876 L4_MABX_B.DataTypeConversion6_i);
5877 L4_MABX_B.RelationalOperator1_j[7] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[7] !=
5878 L4_MABX_B.DataTypeConversion7_gf);
5879 L4_MABX_B.RelationalOperator1_j[8] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[8] !=
5880 L4_MABX_B.DataTypeConversion8_j);
5881 L4_MABX_B.RelationalOperator1_j[9] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[9] !=
5882 L4_MABX_B.DataTypeConversion9_a);
5883 L4_MABX_B.RelationalOperator1_j[10] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[10]
5884 != L4_MABX_B.DataTypeConversion10_m);
5885 L4_MABX_B.RelationalOperator1_j[11] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[11]
5886 != L4_MABX_B.DataTypeConversion11_o);
5887 L4_MABX_B.RelationalOperator1_j[12] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[12]
5888 != L4_MABX_B.DataTypeConversion12);
5889 L4_MABX_B.RelationalOperator1_j[13] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[13]
5890 != L4_MABX_B.DataTypeConversion14_p);
5891 L4_MABX_B.RelationalOperator1_j[14] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[14]
5892 != L4_MABX_B.DataTypeConversion13_l);
5893 L4_MABX_B.RelationalOperator1_j[15] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[15]
5894 != L4_MABX_B.DataTypeConversion15_k);
5895 L4_MABX_B.RelationalOperator1_j[16] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[16]
5896 != L4_MABX_B.DataTypeConversion16_e);
5897
5898 /* Sum: '<S651>/Add' */
5899 tmp = 0U;
5900 for (i = 0; i < 17; i++) {
5901 tmp += L4_MABX_B.RelationalOperator1_j[i];
5902 }
5903
5904 L4_MABX_B.Add_kc = (uint8_T)tmp;
5905
5906 /* End of Sum: '<S651>/Add' */
5907
5908 /* RelationalOperator: '<S655>/Compare' incorporates:
5909 * Constant: '<S655>/Constant'
5910 */
5911 L4_MABX_B.Compare_fa = (L4_MABX_B.Add_kc == L4_MABX_P.Constant_Value_df);
5912
5913 /* Logic: '<S651>/Logical Operator' */
5914 L4_MABX_B.LogicalOperator_b = (L4_MABX_B.Unit_Delay3 && L4_MABX_B.Compare_fa);
5915
5916 /* UnitDelay: '<S651>/Unit_Delay' */
5917 L4_MABX_B.Unit_Delay_js = L4_MABX_DW.Unit_Delay_DSTATE_ca;
5918
5919 /* Logic: '<S657>/Logical Operator3' */
5920 L4_MABX_B.LogicalOperator3_f = !L4_MABX_B.Unit_Delay_js;
5921
5922 /* UnitDelay: '<S657>/Unit_Delay' */
5923 L4_MABX_B.Unit_Delay_i = L4_MABX_DW.Unit_Delay_DSTATE_ed;
5924
5925 /* Logic: '<S657>/Logical Operator' */
5926 L4_MABX_B.LogicalOperator_f = (L4_MABX_B.LogicalOperator3_f &&
5927 L4_MABX_B.Unit_Delay_i);
5928
5929 /* Logic: '<S657>/Logical Operator1' */
5930 L4_MABX_B.LogicalOperator1_p = (L4_MABX_B.LogicalOperator_b ||
5931 L4_MABX_B.LogicalOperator_f);
5932
5933 /* Outputs for Enabled SubSystem: '<S632>/SSI2_031' incorporates:
5934 * EnablePort: '<S633>/Enable'
5935 */
5936 /* Constant: '<S452>/Constant' */
5937 if (L4_MABX_P.Constant_Value_hp > 0.0) {
5938 /* S-Function (rti_commonblock): '<S633>/S-Function1' */
5939 /* This comment workarounds a code generation problem */
5940
5941 /* dSPACE RTICAN RX Message Block: "SSI2_03" Id:217065731 */
5942 {
5943 UInt32 *CAN_Msg;
5944 static dsfloat time_old = 0.0;
5945
5946 /* Read status and timestamp info (previous message) */
5947 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].timestamp !=
5948 time_old) {
5949 /* ... save timestamp info for the calculation of the RX status
5950 during the consecutive sample hit*/
5951 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].
5952 timestamp;
5953
5954 /* ... set the processed flag to one */
5955 L4_MABX_B.SFunction1_o8_e = 1.0;
5956 L4_MABX_B.SFunction1_o9_e = (real_T)
5957 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].timestamp;
5958 L4_MABX_B.SFunction1_o10_i = (real_T)
5959 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].deltatime;
5960 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].data;
5961
5962 /* Decode CAN message */
5963 {
5964 {
5965 rtican_Signal_t CAN_Sgn;
5966
5967 /* ...... "PitchAngleExRange" (0|24, standard signal, unsigned int, little endian) */
5968 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5969 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5970 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
5971 CAN_Sgn.UnsignedSgn &= 0x00FFFFFF;
5972 L4_MABX_B.SFunction1_o1_ms = -250 + ( 3.0517578125E-5 * ( ((real_T)
5973 CAN_Sgn.UnsignedSgn) ) );
5974
5975 /* ...... "RollAngleExRange" (24|24, standard signal, unsigned int, little endian) */
5976 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5977 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5978 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[5];
5979 CAN_Sgn.UnsignedSgn &= 0x00FFFFFF;
5980 L4_MABX_B.SFunction1_o2_ph = -250 + ( 3.0517578125E-5 * ( ((real_T)
5981 CAN_Sgn.UnsignedSgn) ) );
5982
5983 /* ...... "PitchAngleExRangeCompensation" (48|2, standard signal, unsigned int, little endian) */
5984 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5985 CAN_Sgn.UnsignedSgn &= 0x00000003;
5986 L4_MABX_B.SFunction1_o3_nr = ((real_T) CAN_Sgn.UnsignedSgn);
5987
5988 /* ...... "PitchAngleExRangeFigureOfMerit" (50|2, standard signal, unsigned int, little endian) */
5989 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5990 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5991 CAN_Sgn.UnsignedSgn &= 0x00000003;
5992 L4_MABX_B.SFunction1_o4_e2 = ((real_T) CAN_Sgn.UnsignedSgn);
5993
5994 /* ...... "RollAngleExRangeCompensation" (52|2, standard signal, unsigned int, little endian) */
5995 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5996 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5997 CAN_Sgn.UnsignedSgn &= 0x00000003;
5998 L4_MABX_B.SFunction1_o5_jy = ((real_T) CAN_Sgn.UnsignedSgn);
5999
6000 /* ...... "RollAngleExRangeFigureOfMerit" (54|2, standard signal, unsigned int, little endian) */
6001 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
6002 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
6003 CAN_Sgn.UnsignedSgn &= 0x00000003;
6004 L4_MABX_B.SFunction1_o6_hx = ((real_T) CAN_Sgn.UnsignedSgn);
6005
6006 /* ...... "RllAndPtchExRngMsurementLatency" (56|8, standard signal, unsigned int, little endian) */
6007 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
6008 CAN_Sgn.UnsignedSgn &= 0x000000FF;
6009 L4_MABX_B.SFunction1_o7_i = 0.5 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
6010 }
6011 }
6012 } else {
6013 /* set RX status to 0 because no new message has arrived */
6014 L4_MABX_B.SFunction1_o8_e = 0.0;
6015 }
6016 }
6017 }
6018
6019 /* End of Constant: '<S452>/Constant' */
6020 /* End of Outputs for SubSystem: '<S632>/SSI2_031' */
6021
6022 /* DataTypeConversion: '<S632>/Data Type Conversion1' */
6023 L4_MABX_B.PitchAngleExRange = L4_MABX_B.SFunction1_o1_ms;
6024
6025 /* Outputs for Enabled SubSystem: '<S623>/PX2_LanePosEst' incorporates:
6026 * EnablePort: '<S626>/Enable'
6027 */
6028 /* Constant: '<S449>/Constant' */
6029 if (L4_MABX_P.Constant_Value_h2) {
6030 /* S-Function (rti_commonblock): '<S626>/S-Function1' */
6031 /* This comment workarounds a code generation problem */
6032
6033 /* dSPACE RTICAN RX Message Block: "PX2_LanePosEst" Id:769 */
6034 {
6035 UInt32 *CAN_Msg;
6036 static dsfloat time_old = 0.0;
6037
6038 /* Read status and timestamp info (previous message) */
6039 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp !=
6040 time_old) {
6041 /* ... save timestamp info for the calculation of the RX status
6042 during the consecutive sample hit*/
6043 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp;
6044
6045 /* ... set the processed flag to one */
6046 L4_MABX_B.SFunction1_o5_l = 1.0;
6047 L4_MABX_B.SFunction1_o6_fd = (real_T)
6048 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp;
6049 L4_MABX_B.SFunction1_o7_ls = (real_T)
6050 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].deltatime;
6051 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].data;
6052
6053 /* Decode CAN message */
6054 {
6055 {
6056 rtican_Signal_t CAN_Sgn;
6057
6058 /* ...... "PX2_LanePosEstAngle" (0|16, standard signal, signed int, little endian) */
6059 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
6060 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
6061 CAN_Sgn.SignedSgn &= 0x0000FFFF;
6062 if (CAN_Sgn.SignedSgn >> 15) {
6063 CAN_Sgn.SignedSgn |= 0xFFFF0000;
6064 }
6065
6066 L4_MABX_B.SFunction1_o1_in = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
6067
6068 /* ...... "PX2_LanePosEstNumPoints" (16|8, standard signal, unsigned int, little endian) */
6069 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
6070 CAN_Sgn.UnsignedSgn &= 0x000000FF;
6071 L4_MABX_B.SFunction1_o2_nr = ((real_T) CAN_Sgn.UnsignedSgn);
6072
6073 /* ...... "PX2_LanePosEstPosition" (24|16, standard signal, signed int, little endian) */
6074 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
6075 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
6076 CAN_Sgn.SignedSgn &= 0x0000FFFF;
6077 if (CAN_Sgn.SignedSgn >> 15) {
6078 CAN_Sgn.SignedSgn |= 0xFFFF0000;
6079 }
6080
6081 L4_MABX_B.SFunction1_o3_km = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
6082
6083 /* ...... "PX2_LanePosEstNumLanes" (40|4, standard signal, unsigned int, little endian) */
6084 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
6085 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6086 L4_MABX_B.SFunction1_o4_p1 = ((real_T) CAN_Sgn.UnsignedSgn);
6087 }
6088 }
6089 } else {
6090 /* set RX status to 0 because no new message has arrived */
6091 L4_MABX_B.SFunction1_o5_l = 0.0;
6092 }
6093 }
6094 }
6095
6096 /* End of Outputs for SubSystem: '<S623>/PX2_LanePosEst' */
6097
6098 /* Outputs for Enabled SubSystem: '<S630>/Bendix_Prop2C2_Status_30' incorporates:
6099 * EnablePort: '<S631>/Enable'
6100 */
6101 /* Constant: '<S451>/Constant' */
6102 if (L4_MABX_P.Constant_Value_ny > 0.0) {
6103 /* S-Function (rti_commonblock): '<S631>/S-Function1' */
6104 /* This comment workarounds a code generation problem */
6105
6106 /* dSPACE RTICAN RX Message Block: "Prop2C2_Status_30" Id:419382064 */
6107 {
6108 UInt32 *CAN_Msg;
6109 static dsfloat time_old = 0.0;
6110
6111 /* Read status and timestamp info (previous message) */
6112 if (can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].timestamp !=
6113 time_old) {
6114 /* ... save timestamp info for the calculation of the RX status
6115 during the consecutive sample hit*/
6116 time_old = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].
6117 timestamp;
6118
6119 /* ... set the processed flag to one */
6120 L4_MABX_B.SFunction1_o11_a = 1.0;
6121 L4_MABX_B.SFunction1_o12_p = (real_T)
6122 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].timestamp;
6123 L4_MABX_B.SFunction1_o13_e = (real_T)
6124 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].deltatime;
6125 CAN_Msg = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].data;
6126
6127 /* Decode CAN message */
6128 {
6129 {
6130 rtican_Signal_t CAN_Sgn;
6131
6132 /* ...... "PressureP4" (0|8, standard signal, unsigned int, little endian) */
6133 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
6134 CAN_Sgn.UnsignedSgn &= 0x000000FF;
6135 L4_MABX_B.SFunction1_o1_ak = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
6136
6137 /* ...... "PressureP1" (8|8, standard signal, unsigned int, little endian) */
6138 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
6139 CAN_Sgn.UnsignedSgn &= 0x000000FF;
6140 L4_MABX_B.SFunction1_o2_nc = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
6141
6142 /* ...... "PressureP21" (16|8, standard signal, unsigned int, little endian) */
6143 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
6144 CAN_Sgn.UnsignedSgn &= 0x000000FF;
6145 L4_MABX_B.SFunction1_o3_fd = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
6146
6147 /* ...... "PressureP22" (24|8, standard signal, unsigned int, little endian) */
6148 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
6149 CAN_Sgn.UnsignedSgn &= 0x000000FF;
6150 L4_MABX_B.SFunction1_o4_ka = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
6151
6152 /* ...... "PressureP42" (32|8, standard signal, unsigned int, little endian) */
6153 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6154 CAN_Sgn.UnsignedSgn &= 0x000000FF;
6155 L4_MABX_B.SFunction1_o5_m = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
6156
6157 /* ...... "XPR1ControlStatus" (40|4, standard signal, unsigned int, little endian) */
6158 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
6159 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6160 L4_MABX_B.SFunction1_o6_fc = ((real_T) CAN_Sgn.UnsignedSgn);
6161
6162 /* ...... "XPR2ControlStatus" (44|4, standard signal, unsigned int, little endian) */
6163 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
6164 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
6165 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6166 L4_MABX_B.SFunction1_o7_jt = ((real_T) CAN_Sgn.UnsignedSgn);
6167
6168 /* ...... "XPR3ControlStatus" (48|4, standard signal, unsigned int, little endian) */
6169 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
6170 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6171 L4_MABX_B.SFunction1_o8_j = ((real_T) CAN_Sgn.UnsignedSgn);
6172
6173 /* ...... "XPRErrorState" (56|2, standard signal, unsigned int, little endian) */
6174 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
6175 CAN_Sgn.UnsignedSgn &= 0x00000003;
6176 L4_MABX_B.SFunction1_o9_ed = ((real_T) CAN_Sgn.UnsignedSgn);
6177
6178 /* ...... "XPRControlMode" (58|4, standard signal, unsigned int, little endian) */
6179 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
6180 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
6181 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6182 L4_MABX_B.SFunction1_o10_c = ((real_T) CAN_Sgn.UnsignedSgn);
6183 }
6184 }
6185 } else {
6186 /* set RX status to 0 because no new message has arrived */
6187 L4_MABX_B.SFunction1_o11_a = 0.0;
6188 }
6189 }
6190 }
6191
6192 /* End of Constant: '<S451>/Constant' */
6193 /* End of Outputs for SubSystem: '<S630>/Bendix_Prop2C2_Status_30' */
6194
6195 /* DataTypeConversion: '<S630>/Data Type Conversion15' */
6196 PositionFinalLimited = L4_MABX_B.SFunction1_o10_c;
6197 if (PositionFinalLimited < 256.0) {
6198 if (PositionFinalLimited >= 0.0) {
6199 starting_index = (uint8_T)PositionFinalLimited;
6200 } else {
6201 starting_index = 0U;
6202 }
6203 } else {
6204 starting_index = MAX_uint8_T;
6205 }
6206
6207 L4_MABX_B.DataTypeConversion15_a = starting_index;
6208
6209 /* End of DataTypeConversion: '<S630>/Data Type Conversion15' */
6210
6211 /* DataTypeConversion: '<S630>/Data Type Conversion5' */
6212 L4_MABX_B.XPRControlMode = (ENUM_XPR_CONTROL_MODE_T)
6213 safe_cast_to_ENUM_XPR_CONTROL_M(L4_MABX_B.DataTypeConversion15_a);
6214
6215 /* DataTypeConversion: '<S630>/Data Type Conversion4' */
6216 PositionFinalLimited = L4_MABX_B.SFunction1_o9_ed;
6217 if (PositionFinalLimited < 256.0) {
6218 if (PositionFinalLimited >= 0.0) {
6219 starting_index = (uint8_T)PositionFinalLimited;
6220 } else {
6221 starting_index = 0U;
6222 }
6223 } else {
6224 starting_index = MAX_uint8_T;
6225 }
6226
6227 L4_MABX_B.DataTypeConversion4_c0 = starting_index;
6228
6229 /* End of DataTypeConversion: '<S630>/Data Type Conversion4' */
6230
6231 /* DataTypeConversion: '<S630>/Data Type Conversion14' */
6232 L4_MABX_B.XPRErrorState = (ENUM_XPR_ERROR_STATE_T)
6233 safe_cast_to_ENUM_XPR_ERROR_STA(L4_MABX_B.DataTypeConversion4_c0);
6234
6235 /* DataTypeConversion: '<S630>/Data Type Conversion7' */
6236 L4_MABX_B.PressureP1 = L4_MABX_B.SFunction1_o2_nc;
6237
6238 /* DataTypeConversion: '<S630>/Data Type Conversion6' */
6239 L4_MABX_B.PressureP4 = L4_MABX_B.SFunction1_o1_ak;
6240
6241 /* DataTypeConversion: '<S630>/Data Type Conversion11' */
6242 L4_MABX_B.PressureP21 = L4_MABX_B.SFunction1_o3_fd;
6243
6244 /* DataTypeConversion: '<S630>/Data Type Conversion12' */
6245 L4_MABX_B.PressureP22 = L4_MABX_B.SFunction1_o4_ka;
6246
6247 /* DataTypeConversion: '<S630>/Data Type Conversion13' */
6248 L4_MABX_B.PressureP42 = L4_MABX_B.SFunction1_o5_m;
6249
6250 /* RelationalOperator: '<S662>/Operator' incorporates:
6251 * Constant: '<S468>/Constant3'
6252 * Constant: '<S660>/Constant1'
6253 */
6254 L4_MABX_B.Operator_h3 = (PROPB_REAX_CHANNEL_APV ==
6255 L4_MABX_P.Constant1_Value_eu);
6256
6257 /* Outputs for Enabled SubSystem: '<S580>/PropB_REAX_2_13' incorporates:
6258 * EnablePort: '<S582>/Enable'
6259 */
6260 if (L4_MABX_B.Operator_h3) {
6261 /* S-Function (rti_commonblock): '<S582>/S-Function1' */
6262 /* This comment workarounds a code generation problem */
6263
6264 /* dSPACE RTICAN RX Message Block: "PropB_REAX_2_13" Id:419426323 */
6265 {
6266 UInt32 *CAN_Msg;
6267 static dsfloat time_old = 0.0;
6268
6269 /* Read status and timestamp info (previous message) */
6270 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].timestamp !=
6271 time_old) {
6272 /* ... save timestamp info for the calculation of the RX status
6273 during the consecutive sample hit*/
6274 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].
6275 timestamp;
6276
6277 /* ... set the processed flag to one */
6278 L4_MABX_B.SFunction1_o3_mo = 1.0;
6279 L4_MABX_B.SFunction1_o4_bh = (real_T)
6280 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].timestamp;
6281 L4_MABX_B.SFunction1_o5_ef = (real_T)
6282 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].deltatime;
6283 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].data;
6284
6285 /* Decode CAN message */
6286 {
6287 {
6288 rtican_Signal_t CAN_Sgn;
6289
6290 /* ...... "PropB_REAX_2_ActualHandwheelPos" (0|32, standard signal, signed int, little endian) */
6291 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
6292 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
6293 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
6294 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
6295 L4_MABX_B.SFunction1_o1_ps = 0.0439453125 * ( ((real_T)
6296 CAN_Sgn.SignedSgn) );
6297
6298 /* ...... "PropB_REAX_2_EchoedStrWhlPos" (32|32, standard signal, signed int, little endian) */
6299 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6300 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
6301 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
6302 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
6303 L4_MABX_B.SFunction1_o2_onq = 0.0439453125 * ( ((real_T)
6304 CAN_Sgn.SignedSgn) );
6305 }
6306 }
6307 } else {
6308 /* set RX status to 0 because no new message has arrived */
6309 L4_MABX_B.SFunction1_o3_mo = 0.0;
6310 }
6311 }
6312 }
6313
6314 /* End of Outputs for SubSystem: '<S580>/PropB_REAX_2_13' */
6315
6316 /* RelationalOperator: '<S661>/Operator' incorporates:
6317 * Constant: '<S468>/Constant3'
6318 * Constant: '<S660>/Constant'
6319 */
6320 L4_MABX_B.Operator_dlu = (PROPB_REAX_CHANNEL_APV ==
6321 L4_MABX_P.Constant_Value_nb);
6322
6323 /* RelationalOperator: '<S663>/Operator' incorporates:
6324 * Constant: '<S468>/Constant3'
6325 * Constant: '<S660>/Constant2'
6326 */
6327 L4_MABX_B.Operator_ac = (PROPB_REAX_CHANNEL_APV ==
6328 L4_MABX_P.Constant2_Value_eu);
6329
6330 /* RelationalOperator: '<S664>/Operator' incorporates:
6331 * Constant: '<S468>/Constant3'
6332 * Constant: '<S660>/Constant3'
6333 */
6334 L4_MABX_B.Operator_bf = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant3_Value_b);
6335
6336 /* RelationalOperator: '<S665>/Operator' incorporates:
6337 * Constant: '<S468>/Constant3'
6338 * Constant: '<S660>/Constant4'
6339 */
6340 L4_MABX_B.Operator_l5n = (PROPB_REAX_CHANNEL_APV ==
6341 L4_MABX_P.Constant4_Value_g);
6342
6343 /* RelationalOperator: '<S666>/Operator' incorporates:
6344 * Constant: '<S468>/Constant3'
6345 * Constant: '<S660>/Constant5'
6346 */
6347 L4_MABX_B.Operator_e3 = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant5_Value_l);
6348
6349 /* Logic: '<S468>/OR' */
6350 L4_MABX_B.EnablePropB_ReAX_CAN6 = (L4_MABX_B.Operator_dlu ||
6351 L4_MABX_B.Operator_ac || L4_MABX_B.Operator_bf || L4_MABX_B.Operator_l5n ||
6352 L4_MABX_B.Operator_e3);
6353
6354 /* Outputs for Enabled SubSystem: '<S581>/PropB_REAX_2_13' incorporates:
6355 * EnablePort: '<S583>/Enable'
6356 */
6357 if (L4_MABX_B.EnablePropB_ReAX_CAN6) {
6358 /* S-Function (rti_commonblock): '<S583>/S-Function1' */
6359 /* This comment workarounds a code generation problem */
6360
6361 /* dSPACE RTICAN RX Message Block: "PropB_REAX_2_13" Id:486535187 */
6362 {
6363 UInt32 *CAN_Msg;
6364 static dsfloat time_old = 0.0;
6365
6366 /* Read status and timestamp info (previous message) */
6367 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].timestamp !=
6368 time_old) {
6369 /* ... save timestamp info for the calculation of the RX status
6370 during the consecutive sample hit*/
6371 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].
6372 timestamp;
6373
6374 /* ... set the processed flag to one */
6375 L4_MABX_B.SFunction1_o3_m4 = 1.0;
6376 L4_MABX_B.SFunction1_o4_gp = (real_T)
6377 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].timestamp;
6378 L4_MABX_B.SFunction1_o5_i = (real_T)
6379 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].deltatime;
6380 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].data;
6381
6382 /* Decode CAN message */
6383 {
6384 {
6385 rtican_Signal_t CAN_Sgn;
6386
6387 /* ...... "PropB_REAX_2_ActualHandwheelPos" (0|32, standard signal, signed int, little endian) */
6388 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
6389 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
6390 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
6391 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
6392 L4_MABX_B.SFunction1_o1_cj = 0.0439453125 * ( ((real_T)
6393 CAN_Sgn.SignedSgn) );
6394
6395 /* ...... "PropB_REAX_2_EchoedStrWhlPos" (32|32, standard signal, signed int, little endian) */
6396 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6397 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
6398 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
6399 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
6400 L4_MABX_B.SFunction1_o2_h5 = 0.0439453125 * ( ((real_T)
6401 CAN_Sgn.SignedSgn) );
6402 }
6403 }
6404 } else {
6405 /* set RX status to 0 because no new message has arrived */
6406 L4_MABX_B.SFunction1_o3_m4 = 0.0;
6407 }
6408 }
6409 }
6410
6411 /* End of Outputs for SubSystem: '<S581>/PropB_REAX_2_13' */
6412
6413 /* Switch: '<S445>/Switch' */
6414 if (L4_MABX_B.Operator_h3) {
6415 ReAX_ActualHandwheelPos = L4_MABX_B.SFunction1_o1_ps;
6416 } else {
6417 ReAX_ActualHandwheelPos = L4_MABX_B.SFunction1_o1_cj;
6418 }
6419
6420 /* S-Function (dsa_tcpip_setup_sfcn): '<S401>/dsa_tcpip_setup' */
6421
6422 /* Level2 S-Function Block: '<S401>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
6423 {
6424 SimStruct *rts = L4_MABX_M->childSfunctions[3];
6425 ssSetOutputPortSignal(rts, 0, &EthernetLinkStatus);
6426 sfcnOutputs(rts,0);
6427 }
6428
6429 /* Constant: '<S3>/Enable' */
6430 L4_MABX_B.Enable = L4_MABX_P.Enable_Value;
6431
6432 /* DiscretePulseGenerator: '<S400>/Heartbeat' */
6433 L4_MABX_B.Heartbeat = (L4_MABX_DW.clockTickCounter < L4_MABX_P.Heartbeat_Duty)
6434 && (L4_MABX_DW.clockTickCounter >= 0) ? L4_MABX_P.Heartbeat_Amp : 0.0;
6435 if (L4_MABX_DW.clockTickCounter >= L4_MABX_P.Heartbeat_Period - 1.0) {
6436 L4_MABX_DW.clockTickCounter = 0;
6437 } else {
6438 L4_MABX_DW.clockTickCounter++;
6439 }
6440
6441 /* End of DiscretePulseGenerator: '<S400>/Heartbeat' */
6442
6443 /* DataTypeConversion: '<S400>/Cast To Boolean' */
6444 MABX_Heartbeat = (L4_MABX_B.Heartbeat != 0.0);
6445
6446 /* UnitDelay: '<S3>/Unit_Delay' */
6447 L4_MABX_B.EStop_j = L4_MABX_DW.Unit_Delay_80_DSTATE;
6448 L4_MABX_B.EnableSW = L4_MABX_DW.Unit_Delay_81_DSTATE;
6449 L4_MABX_B.EngageReq_c = L4_MABX_DW.Unit_Delay_48_DSTATE;
6450 L4_MABX_B.LogPB = L4_MABX_DW.Unit_Delay_83_DSTATE;
6451 L4_MABX_B.AutonomousEnabled_a = L4_MABX_DW.Unit_Delay_45_DSTATE;
6452 L4_MABX_B.MABX_Mode_h = L4_MABX_DW.Unit_Delay_47_DSTATE;
6453 L4_MABX_B.BrakeSW_j = L4_MABX_DW.Unit_Delay_84_DSTATE;
6454
6455 /* BusCreator: '<S400>/Bus Creator' */
6456 L4_MABX_B.BusCreator.Heartbeat = MABX_Heartbeat;
6457 L4_MABX_B.BusCreator.EStop = L4_MABX_B.EStop_j;
6458 L4_MABX_B.BusCreator.EnableSW = L4_MABX_B.EnableSW;
6459 L4_MABX_B.BusCreator.EngageReq = L4_MABX_B.EngageReq_c;
6460 L4_MABX_B.BusCreator.LogEventPB = L4_MABX_B.LogPB;
6461 L4_MABX_B.BusCreator.AutonomousEnabled = L4_MABX_B.AutonomousEnabled_a;
6462 L4_MABX_B.BusCreator.MABX_Mode = L4_MABX_B.MABX_Mode_h;
6463 L4_MABX_B.BusCreator.BrakeSW = L4_MABX_B.BrakeSW_j;
6464
6465 /* S-Function (dsa_gen_tx_RTMapsEncode_sfun): '<S409>/Encoder' */
6466 Update_Tx_RTMapsEncode((RTMapsTX*)&L4_MABX_B.BusCreator,
6467 &L4_MABX_B.Encoder_o1[0], &L4_MABX_B.Encoder_o2);
6468
6469 /* S-Function (dsa_tcpip_udp_sfcn): '<S402>/TCPIP_Com' */
6470
6471 /* Level2 S-Function Block: '<S402>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
6472 {
6473 SimStruct *rts = L4_MABX_M->childSfunctions[4];
6474 sfcnOutputs(rts,0);
6475 }
6476
6477 /* DataTypeConversion: '<S399>/Data Type Conversion' */
6478 L4_MABX_B.DataTypeConversion_a = L4_MABX_B.TCPIP_Com_o2;
6479
6480 /* S-Function (dsa_gen_rx_RTMapsDecode_sfun): '<S406>/Decoder' */
6481 Update_Rx_RTMapsDecode((uint8_T*)&L4_MABX_B.TCPIP_Com_o3[0],
6482 L4_MABX_B.DataTypeConversion_a, L4_MABX_B.TCPIP_Com_o1[2],
6483 &L4_MABX_B.Decoder_o1, &L4_MABX_B.Decoder_o2, &L4_MABX_B.Decoder_o3);
6484
6485 /* RelationalOperator: '<S408>/Compare' incorporates:
6486 * Constant: '<S408>/Constant'
6487 */
6488 L4_MABX_B.Compare_c5 = ((int32_T)L4_MABX_B.Decoder_o1.Heartbeat > (int32_T)
6489 L4_MABX_P.Constant_Value_ap);
6490
6491 /* UnitDelay: '<S407>/Delay Input1' */
6492 L4_MABX_B.Uk1_f = L4_MABX_DW.DelayInput1_DSTATE_n;
6493
6494 /* RelationalOperator: '<S407>/FixPt Relational Operator' */
6495 L4_MABX_B.FixPtRelationalOperator_i = ((int32_T)L4_MABX_B.Compare_c5 >
6496 (int32_T)L4_MABX_B.Uk1_f);
6497
6498 /* UnitDelay: '<S405>/Unit Delay' */
6499 L4_MABX_B.UnitDelay_f = L4_MABX_DW.UnitDelay_DSTATE_k;
6500
6501 /* Switch: '<S405>/Switch' incorporates:
6502 * Constant: '<S405>/Constant1'
6503 */
6504 if (L4_MABX_B.FixPtRelationalOperator_i) {
6505 L4_MABX_B.Count = L4_MABX_P.Constant1_Value_e;
6506 } else {
6507 /* Sum: '<S405>/Sum' incorporates:
6508 * Constant: '<S405>/Constant'
6509 */
6510 L4_MABX_B.Sum_l = L4_MABX_P.Constant_Value_l + L4_MABX_B.UnitDelay_f;
6511 L4_MABX_B.Count = L4_MABX_B.Sum_l;
6512 }
6513
6514 /* End of Switch: '<S405>/Switch' */
6515
6516 /* Switch: '<S405>/Switch1' incorporates:
6517 * Constant: '<S405>/Constant2'
6518 * Constant: '<S405>/Constant3'
6519 */
6520 if (L4_MABX_B.Count > L4_MABX_P.Switch1_Threshold) {
6521 Heartbeat_Ok = L4_MABX_P.Constant2_Value_eu2;
6522 } else {
6523 Heartbeat_Ok = L4_MABX_P.Constant3_Value_f;
6524 }
6525
6526 /* End of Switch: '<S405>/Switch1' */
6527
6528 /* Logic: '<S399>/AND' */
6529 RTMapsOk = ((EthernetLinkStatus != 0.0) && Heartbeat_Ok);
6530
6531 /* Switch: '<S399>/Switch9' incorporates:
6532 * Constant: '<S399>/Failure'
6533 */
6534 if (RTMapsOk) {
6535 /* Gain: '<S399>/for_logging7' */
6536 L4_MABX_B.SupervisorMode_b = (int8_T)(((uint32_T)L4_MABX_P.for_logging7_Gain
6537 * L4_MABX_B.Decoder_o1.SupervisorMode) >> 7);
6538 SupervisorMode = (uint8_T)L4_MABX_B.SupervisorMode_b;
6539 } else {
6540 SupervisorMode = L4_MABX_P.Failure_Value_k;
6541 }
6542
6543 /* End of Switch: '<S399>/Switch9' */
6544
6545 /* RelationalOperator: '<S404>/Operator' incorporates:
6546 * Constant: '<S399>/Supervisor_Autonomous_Mode'
6547 */
6548 L4_MABX_B.Operator_m1 = (L4_MABX_P.Supervisor_Autonomous_Mode_Valu ==
6549 SupervisorMode);
6550
6551 /* Logic: '<S399>/AND1' */
6552 L4_MABX_B.SystemsOk = (RTMapsOk && L4_MABX_B.Operator_m1);
6553
6554 /* Switch: '<S399>/Switch' incorporates:
6555 * Constant: '<S399>/No Data'
6556 * Switch: '<S399>/Switch1'
6557 * Switch: '<S399>/Switch3'
6558 * Switch: '<S399>/Switch4'
6559 * Switch: '<S399>/Switch5'
6560 */
6561 if (RTMapsOk) {
6562 /* Gain: '<S399>/for_logging' */
6563 L4_MABX_B.for_logging = L4_MABX_P.for_logging_Gain *
6564 L4_MABX_B.Decoder_o1.CurrentAzimuth;
6565 CurrentAzimuth_rad = L4_MABX_B.for_logging;
6566
6567 /* Gain: '<S399>/for_logging1' */
6568 L4_MABX_B.for_logging1 = L4_MABX_P.for_logging1_Gain *
6569 L4_MABX_B.Decoder_o1.TargetAzimuth;
6570 TargetAzimuth_rad = L4_MABX_B.for_logging1;
6571
6572 /* Gain: '<S399>/m//s_to_km//h_2' */
6573 L4_MABX_B.ms_to_kmh_2 = L4_MABX_P.ms_to_kmh_2_Gain *
6574 L4_MABX_B.Decoder_o1.TargetVelocity;
6575 TargetVelocity_kph = L4_MABX_B.ms_to_kmh_2;
6576
6577 /* Gain: '<S399>/for_logging2' */
6578 L4_MABX_B.for_logging2 = L4_MABX_P.for_logging2_Gain *
6579 L4_MABX_B.Decoder_o1.Curvature;
6580 Curvature = L4_MABX_B.for_logging2;
6581
6582 /* Gain: '<S399>/for_logging3' */
6583 L4_MABX_B.for_logging3 = L4_MABX_P.for_logging3_Gain *
6584 L4_MABX_B.Decoder_o1.CrosstrackError;
6585 CrosstrackError = L4_MABX_B.for_logging3;
6586 } else {
6587 CurrentAzimuth_rad = L4_MABX_P.NoData_Value;
6588 TargetAzimuth_rad = L4_MABX_P.NoData_Value;
6589 TargetVelocity_kph = L4_MABX_P.NoData_Value;
6590 Curvature = L4_MABX_P.NoData_Value;
6591 CrosstrackError = L4_MABX_P.NoData_Value;
6592 }
6593
6594 /* End of Switch: '<S399>/Switch' */
6595
6596 /* Outputs for Atomic SubSystem: '<S65>/Task_10ms' */
6597 /* Logic: '<S76>/NOT' */
6598 L4_MABX_B.NOT_g = !BrakeSW;
6599
6600 /* RelationalOperator: '<S103>/Compare' incorporates:
6601 * Constant: '<S103>/Constant'
6602 */
6603 L4_MABX_B.Compare_j = ((int32_T)EngagePB > (int32_T)
6604 L4_MABX_P.Constant_Value_ll);
6605
6606 /* UnitDelay: '<S102>/Delay Input1' */
6607 L4_MABX_B.Uk1_i = L4_MABX_DW.DelayInput1_DSTATE_j;
6608
6609 /* RelationalOperator: '<S102>/FixPt Relational Operator' */
6610 L4_MABX_B.FixPtRelationalOperator_l = ((int32_T)L4_MABX_B.Compare_j > (int32_T)
6611 L4_MABX_B.Uk1_i);
6612
6613 /* Sum: '<S96>/Subtract' */
6614 L4_MABX_B.Subtract_a = TargetVelocity_kph - L4_MABX_B.SFunction1_o1_loi;
6615
6616 /* RelationalOperator: '<S101>/Compare' incorporates:
6617 * Constant: '<S101>/Constant'
6618 */
6619 L4_MABX_B.Compare_i = (L4_MABX_B.Subtract_a >=
6620 L4_MABX_P.CompareToConstant_const_a);
6621
6622 /* Logic: '<S96>/AND' */
6623 EngageReq = (L4_MABX_B.FixPtRelationalOperator_l && L4_MABX_B.Compare_i);
6624
6625 /* UnitDelay: '<S76>/Unit_Delay' */
6626 L4_MABX_B.Unit_Delay_nh = L4_MABX_DW.Unit_Delay_DSTATE_fv;
6627
6628 /* Logic: '<S76>/OR' */
6629 L4_MABX_B.OR_l = (EngageReq || L4_MABX_B.Unit_Delay_nh);
6630
6631 /* UnitDelay: '<S97>/Unit Delay1' */
6632 L4_MABX_B.UnitDelay1_f = L4_MABX_DW.UnitDelay1_DSTATE_m;
6633
6634 /* RelationalOperator: '<S100>/Compare' incorporates:
6635 * Constant: '<S100>/Constant'
6636 */
6637 L4_MABX_B.Compare_jp = ((int32_T)L4_MABX_B.Unit_Delay_nh <= (int32_T)
6638 L4_MABX_P.Constant_Value_io);
6639
6640 /* UnitDelay: '<S98>/Delay Input1' */
6641 L4_MABX_B.Uk1_d = L4_MABX_DW.DelayInput1_DSTATE_d;
6642
6643 /* RelationalOperator: '<S98>/FixPt Relational Operator' */
6644 L4_MABX_B.FixPtRelationalOperator_ot = ((int32_T)L4_MABX_B.Compare_jp >
6645 (int32_T)L4_MABX_B.Uk1_d);
6646
6647 /* UnitDelay: '<S97>/Unit Delay' */
6648 L4_MABX_B.UnitDelay_i = L4_MABX_DW.UnitDelay_DSTATE_b1;
6649
6650 /* Logic: '<S97>/OR' */
6651 L4_MABX_B.OR_e = (L4_MABX_B.FixPtRelationalOperator_ot ||
6652 L4_MABX_B.UnitDelay_i);
6653
6654 /* Switch: '<S97>/Switch' incorporates:
6655 * Constant: '<S97>/Constant0'
6656 */
6657 if (L4_MABX_B.OR_e) {
6658 /* Sum: '<S97>/Sum' incorporates:
6659 * Constant: '<S97>/Constant1'
6660 */
6661 L4_MABX_B.Sum_g = L4_MABX_B.UnitDelay1_f + L4_MABX_P.Constant1_Value;
6662 L4_MABX_B.Switch_a = L4_MABX_B.Sum_g;
6663 } else {
6664 L4_MABX_B.Switch_a = L4_MABX_P.Constant0_Value;
6665 }
6666
6667 /* End of Switch: '<S97>/Switch' */
6668
6669 /* RelationalOperator: '<S99>/Compare' incorporates:
6670 * Constant: '<S99>/Constant'
6671 */
6672 L4_MABX_B.Compare_fh = (L4_MABX_B.Switch_a > L4_MABX_P.Constant_Value_hq);
6673
6674 /* Gain: '<S97>/Gain' incorporates:
6675 * Constant: '<S95>/2000ms Delay'
6676 */
6677 L4_MABX_B.Gain_co = (uint32_T)L4_MABX_P.Gain_Gain_bn *
6678 L4_MABX_P.u000msDelay_Value;
6679
6680 /* RelationalOperator: '<S97>/LessThanOrEqual' */
6681 L4_MABX_B.LessThanOrEqual_g = (L4_MABX_B.Switch_a <= (real_T)L4_MABX_B.Gain_co
6682 * 1.9073486328125E-6);
6683
6684 /* Logic: '<S97>/AND' */
6685 L4_MABX_B.AND_f = (L4_MABX_B.Compare_fh && L4_MABX_B.LessThanOrEqual_g);
6686
6687 /* Logic: '<S95>/NOT1' */
6688 L4_MABX_B.NOT1 = !L4_MABX_B.AND_f;
6689
6690 /* Logic: '<S76>/AND' */
6691 AutonomousEnabled = (L4_MABX_B.SystemsOk && EStop && EnableSw &&
6692 L4_MABX_B.NOT_g && L4_MABX_B.OR_l && L4_MABX_B.NOT1);
6693
6694 /* Logic: '<S83>/Logical Operator' */
6695 L4_MABX_B.LogicalOperator_dy = !AutonomousEnabled;
6696
6697 /* Outputs for Atomic SubSystem: '<S83>/If_Then_Else' */
6698
6699 /* Constant: '<S83>/APTC_PEDAL_POSITION_OVR_APV' incorporates:
6700 * Constant: '<S83>/APTC_DESIRED_PEDAL_POSITION_APV'
6701 */
6702 L4_MABX_If_Then_Else(L4_MABX_P.APTC_PEDAL_POSITION_OVR_APV_Val,
6703 L4_MABX_P.APTC_DESIRED_PEDAL_POSITION_APV,
6704 Pedal_pwm_position, &L4_MABX_B.If_Then_Else_o);
6705
6706 /* End of Outputs for SubSystem: '<S83>/If_Then_Else' */
6707
6708 /* DataTypeConversion: '<S83>/Data Type Conversion1' */
6709 L4_MABX_B.DataTypeConversion1_ht = L4_MABX_B.SFunction1_o5_mg;
6710
6711 /* Lookup_n-D: '<S83>/2-D Lookup Table' */
6712 L4_MABX_B.uDLookupTable = look2_binlcapw(L4_MABX_B.If_Then_Else_o.Switch,
6713 L4_MABX_B.DataTypeConversion1_ht, APTC_TRQ_PED_TRQ_POS_STEP_MPV,
6714 APTC_TRQ_PED_TRQ_ESPD_STEP_MPV, APTC_TRQ_PED_TRQ_DATA_MPV,
6715 L4_MABX_P.uDLookupTable_maxIndex, 8U);
6716
6717 /* DataTypeConversion: '<S77>/Data Type Conversion5' */
6718 L4_MABX_B.DataTypeConversion5_o = L4_MABX_B.SFunction1_o1_loi;
6719
6720 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
6721 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
6722 L4_MABX_B.distanceSpdTarget_e = L4_MABX_DW.TmpRTBAtSignalConversion1Inport;
6723 }
6724
6725 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
6726 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
6727 */
6728 switch (LONG_SPEED_SRC_SELECTOR_APV) {
6729 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
6730 /* SignalConversion: '<S81>/Signal Conversion1' */
6731 L4_MABX_B.Vehicle_speed_target_g = L4_MABX_B.distanceSpdTarget_e;
6732 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_g;
6733 break;
6734
6735 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
6736 /* SignalConversion: '<S81>/Signal Conversion4' incorporates:
6737 * Constant: '<S81>/VSPD_TARGET_KPH_APV'
6738 */
6739 L4_MABX_B.Vehicle_speed_target_o5 = VSPD_TARGET_KPH_APV;
6740 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_o5;
6741 break;
6742
6743 default:
6744 /* SignalConversion: '<S81>/Signal Conversion9' */
6745 L4_MABX_B.Vehicle_speed_target_k = TargetVelocity_kph;
6746 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_k;
6747 break;
6748 }
6749
6750 /* SignalConversion: '<S81>/Signal Conversion16' */
6751 L4_MABX_B.VSPD_TARGET_KPH_APV_g = L4_MABX_B.Vehicle_speed_target_o;
6752
6753 /* Saturate: '<S81>/Saturation9' incorporates:
6754 * Constant: '<S81>/VSPD_HYST_KPH_APV'
6755 */
6756 DeltaTime = L4_MABX_P.VSPD_HYST_KPH_APV_Value;
6757 Time56 = L4_MABX_P.Saturation9_LowerSat;
6758 PositionFinalLimited = L4_MABX_P.Saturation9_UpperSat;
6759 if (DeltaTime > PositionFinalLimited) {
6760 L4_MABX_B.VSPD_HYST_KPH_APV_f = PositionFinalLimited;
6761 } else if (DeltaTime < Time56) {
6762 L4_MABX_B.VSPD_HYST_KPH_APV_f = Time56;
6763 } else {
6764 L4_MABX_B.VSPD_HYST_KPH_APV_f = DeltaTime;
6765 }
6766
6767 /* End of Saturate: '<S81>/Saturation9' */
6768
6769 /* Sum: '<S111>/Add' */
6770 L4_MABX_B.Add_k = L4_MABX_B.VSPD_TARGET_KPH_APV_g +
6771 L4_MABX_B.VSPD_HYST_KPH_APV_f;
6772
6773 /* RelationalOperator: '<S111>/Relational Operator' */
6774 L4_MABX_B.f_vspd_geq_than_target_plus_hys = (L4_MABX_B.DataTypeConversion5_o >=
6775 L4_MABX_B.Add_k);
6776
6777 /* Saturate: '<S81>/Saturation1' incorporates:
6778 * Constant: '<S81>/VSPD_BRAKE_STOP_THRESH_KPH_APV'
6779 */
6780 DeltaTime = L4_MABX_P.VSPD_BRAKE_STOP_THRESH_KPH_APV_;
6781 Time56 = L4_MABX_P.Saturation1_LowerSat;
6782 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat;
6783 if (DeltaTime > PositionFinalLimited) {
6784 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = PositionFinalLimited;
6785 } else if (DeltaTime < Time56) {
6786 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = Time56;
6787 } else {
6788 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = DeltaTime;
6789 }
6790
6791 /* End of Saturate: '<S81>/Saturation1' */
6792
6793 /* RelationalOperator: '<S111>/Relational Operator1' */
6794 L4_MABX_B.f_target_is_stop_thresh = (L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b
6795 == L4_MABX_B.VSPD_TARGET_KPH_APV_g);
6796
6797 /* RelationalOperator: '<S207>/Compare' incorporates:
6798 * Constant: '<S207>/Constant'
6799 */
6800 L4_MABX_B.Compare_eu = (L4_MABX_B.VSPD_TARGET_KPH_APV_g ==
6801 L4_MABX_P.Constant_Value_k);
6802
6803 /* RelationalOperator: '<S111>/Relational Operator2' */
6804 L4_MABX_B.RelationalOperator2_p = (L4_MABX_B.VSPD_HYST_KPH_APV_f >=
6805 L4_MABX_B.VSPD_TARGET_KPH_APV_g);
6806
6807 /* RelationalOperator: '<S111>/Relational Operator3' */
6808 L4_MABX_B.RelationalOperator3 = (L4_MABX_B.VSPD_HYST_KPH_APV_f >=
6809 L4_MABX_B.DataTypeConversion5_o);
6810
6811 /* Logic: '<S111>/Logical Operator' */
6812 L4_MABX_B.f_vspd_leq_than_hyst_and_target = (L4_MABX_B.RelationalOperator2_p &&
6813 L4_MABX_B.RelationalOperator3);
6814
6815 /* Logic: '<S111>/Logical Operator1' */
6816 L4_MABX_B.LogicalOperator1_mr = (L4_MABX_B.f_vspd_geq_than_target_plus_hys ||
6817 L4_MABX_B.f_target_is_stop_thresh || L4_MABX_B.Compare_eu ||
6818 L4_MABX_B.f_vspd_leq_than_hyst_and_target);
6819
6820 /* DataTypeConversion: '<S77>/Data Type Conversion4' */
6821 L4_MABX_B.DataTypeConversion4_d5 = AutonomousEnabled;
6822
6823 /* Logic: '<S111>/Logical Operator2' */
6824 L4_MABX_B.F_Brake_control_active = (L4_MABX_B.LogicalOperator1_mr &&
6825 L4_MABX_B.DataTypeConversion4_d5);
6826
6827 /* DataTypeConversion: '<S79>/Data Type Conversion4' */
6828 L4_MABX_B.DataTypeConversion4_i = L4_MABX_B.SFunction1_o1_loi;
6829
6830 /* DataTypeConversion: '<S77>/Data Type Conversion1' */
6831 PositionFinalLimited = L4_MABX_B.SFunction1_o8_ci;
6832 if (PositionFinalLimited < 256.0) {
6833 if (PositionFinalLimited >= 0.0) {
6834 starting_index = (uint8_T)PositionFinalLimited;
6835 } else {
6836 starting_index = 0U;
6837 }
6838 } else {
6839 starting_index = MAX_uint8_T;
6840 }
6841
6842 L4_MABX_B.DataTypeConversion1_ba = starting_index;
6843
6844 /* End of DataTypeConversion: '<S77>/Data Type Conversion1' */
6845
6846 /* DataTypeConversion: '<S77>/Data Type Conversion3' */
6847 L4_MABX_B.BrkPedArbBrakeSwitch_c = (ENUM_J1939_SWITCH_T)
6848 L4_MABX_B.DataTypeConversion1_ba;
6849
6850 /* DataTypeConversion: '<S211>/Data Type Conversion1' */
6851 L4_MABX_B.DataTypeConversion1_cy = L4_MABX_B.BrkPedArbBrakeSwitch_c;
6852
6853 /* RelationalOperator: '<S217>/Compare' incorporates:
6854 * Constant: '<S217>/Constant'
6855 */
6856 L4_MABX_B.Compare_e5 = (L4_MABX_B.DataTypeConversion1_cy ==
6857 L4_MABX_P.CompareToConstant2_const);
6858
6859 /* Logic: '<S211>/Logical Operator2' */
6860 L4_MABX_B.LogicalOperator2_nt = !L4_MABX_B.Compare_e5;
6861
6862 /* DataTypeConversion: '<S211>/Data Type Conversion5' */
6863 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o4_h5);
6864 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
6865 PositionFinalLimited = 0.0;
6866 } else {
6867 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
6868 }
6869
6870 L4_MABX_B.DataTypeConversion5_p = (uint8_T)(PositionFinalLimited < 0.0 ?
6871 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
6872 (uint8_T)PositionFinalLimited);
6873
6874 /* End of DataTypeConversion: '<S211>/Data Type Conversion5' */
6875
6876 /* DataTypeConversion: '<S211>/Data Type Conversion3' */
6877 L4_MABX_B.DataTypeConversion3_l = (ENUM_J1939_SWITCH_T)
6878 L4_MABX_B.DataTypeConversion5_p;
6879
6880 /* RelationalOperator: '<S215>/Compare' incorporates:
6881 * Constant: '<S215>/Constant'
6882 */
6883 L4_MABX_B.Compare_ih = (L4_MABX_B.DataTypeConversion3_l ==
6884 L4_MABX_P.CompareToConstant_const_e);
6885
6886 /* RelationalOperator: '<S216>/Compare' incorporates:
6887 * Constant: '<S216>/Constant'
6888 */
6889 L4_MABX_B.Compare_ex = (L4_MABX_B.DataTypeConversion3_l ==
6890 L4_MABX_P.CompareToConstant1_const_j);
6891
6892 /* Logic: '<S211>/BrakingActive2' */
6893 L4_MABX_B.BrakingActive2 = (L4_MABX_B.Compare_ih || L4_MABX_B.Compare_ex);
6894
6895 /* Logic: '<S211>/BrakingActive1' */
6896 L4_MABX_B.f_brake_sw_off = (L4_MABX_B.LogicalOperator2_nt &&
6897 L4_MABX_B.BrakingActive2);
6898
6899 /* RelationalOperator: '<S218>/Compare' incorporates:
6900 * Constant: '<S218>/Constant'
6901 */
6902 L4_MABX_B.Compare_ay = (L4_MABX_B.SPN524_TransSelectedGear >
6903 L4_MABX_P.Constant_Value_il);
6904
6905 /* RelationalOperator: '<S219>/Compare' incorporates:
6906 * Constant: '<S219>/Constant'
6907 */
6908 L4_MABX_B.Compare_os = (L4_MABX_B.SPN523_TransCurrentGear >
6909 L4_MABX_P.Constant_Value_f);
6910
6911 /* Logic: '<S211>/Logical Operator1' */
6912 L4_MABX_B.f_brk_gov_inactive = !L4_MABX_B.F_Brake_control_active;
6913
6914 /* Logic: '<S211>/Logical Operator' */
6915 L4_MABX_B.LogicalOperator_k = (AutonomousEnabled && L4_MABX_B.f_brake_sw_off &&
6916 L4_MABX_B.Compare_ay && L4_MABX_B.Compare_os && L4_MABX_B.f_brk_gov_inactive);
6917
6918 /* Outputs for Enabled SubSystem: '<S79>/Throttle_controller_gov' incorporates:
6919 * EnablePort: '<S214>/Enable'
6920 */
6921 if (L4_MABX_B.LogicalOperator_k) {
6922 if (!L4_MABX_DW.Throttle_controller_gov_MODE) {
6923 /* InitializeConditions for UnitDelay: '<S222>/Unit_Delay1' */
6924 L4_MABX_DW.Unit_Delay1_DSTATE_p1 =
6925 L4_MABX_P.Unit_Delay1_InitialCondition_o;
6926
6927 /* InitializeConditions for UnitDelay: '<S222>/Unit_Delay' */
6928 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_P.Unit_Delay_InitialCondition_b2;
6929
6930 /* InitializeConditions for UnitDelay: '<S249>/Unit_Delay' */
6931 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Unit_Delay_InitialCondition_lj;
6932
6933 /* InitializeConditions for UnitDelay: '<S269>/Unit_Delay1' */
6934 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Unit_Delay1_InitialCondition_a;
6935
6936 /* InitializeConditions for UnitDelay: '<S270>/Unit_Delay' */
6937 L4_MABX_DW.Unit_Delay_DSTATE_fic =
6938 L4_MABX_P.Unit_Delay_InitialCondition_bm;
6939
6940 /* InitializeConditions for UnitDelay: '<S274>/FixPt Unit Delay2' */
6941 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq =
6942 L4_MABX_P.FixPtUnitDelay2_InitialCondit_a;
6943
6944 /* InitializeConditions for UnitDelay: '<S274>/FixPt Unit Delay1' */
6945 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a =
6946 L4_MABX_P.FixPtUnitDelay1_InitialCondit_o;
6947
6948 /* InitializeConditions for UnitDelay: '<S269>/Unit_Delay2' */
6949 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_P.Unit_Delay2_InitialCondition_j;
6950
6951 /* InitializeConditions for UnitDelay: '<S224>/Unit_Delay' */
6952 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_P.Unit_Delay_InitialCondition_kg;
6953 L4_MABX_DW.Throttle_controller_gov_MODE = true;
6954 }
6955
6956 /* DataTypeConversion: '<S221>/Data Type Conversion9' */
6957 L4_MABX_B.DataTypeConversion9_h = L4_MABX_B.SFunction1_o4_j0;
6958
6959 /* DataTypeConversion: '<S221>/Data Type Conversion1' */
6960 L4_MABX_B.DataTypeConversion1_iqa = L4_MABX_B.SFunction1_o2_p0;
6961
6962 /* Sum: '<S221>/Add' */
6963 L4_MABX_B.Add_di = L4_MABX_B.DataTypeConversion9_h +
6964 L4_MABX_B.DataTypeConversion1_iqa;
6965
6966 /* RelationalOperator: '<S226>/Relational Operator1' incorporates:
6967 * Constant: '<S221>/Constant1'
6968 */
6969 L4_MABX_B.RelationalOperator1_n = (L4_MABX_B.Add_di >=
6970 L4_MABX_P.Constant1_Value_c);
6971
6972 /* RelationalOperator: '<S226>/Relational Operator' incorporates:
6973 * Constant: '<S221>/Constant3'
6974 */
6975 L4_MABX_B.RelationalOperator_d3 = (L4_MABX_B.Add_di <=
6976 L4_MABX_P.Constant3_Value_d);
6977
6978 /* Outputs for Atomic SubSystem: '<S226>/If_Then_Else1' */
6979
6980 /* Constant: '<S221>/Constant3' */
6981 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_d3,
6982 L4_MABX_P.Constant3_Value_d, L4_MABX_B.Add_di,
6983 &L4_MABX_B.If_Then_Else1_h);
6984
6985 /* End of Outputs for SubSystem: '<S226>/If_Then_Else1' */
6986
6987 /* Outputs for Atomic SubSystem: '<S226>/If_Then_Else' */
6988
6989 /* Constant: '<S221>/Constant1' */
6990 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_n,
6991 L4_MABX_P.Constant1_Value_c,
6992 L4_MABX_B.If_Then_Else1_h.Switch,
6993 &L4_MABX_B.If_Then_Else_ct);
6994
6995 /* End of Outputs for SubSystem: '<S226>/If_Then_Else' */
6996
6997 /* DataTypeConversion: '<S221>/Data Type Conversion2' */
6998 L4_MABX_B.DataTypeConversion2_id = L4_MABX_B.SPN514_NominalFrictionPercentTo;
6999
7000 /* RelationalOperator: '<S227>/Relational Operator1' incorporates:
7001 * Constant: '<S221>/Constant2'
7002 */
7003 L4_MABX_B.RelationalOperator1_ch = (L4_MABX_B.DataTypeConversion2_id >=
7004 L4_MABX_P.Constant2_Value_b);
7005
7006 /* RelationalOperator: '<S227>/Relational Operator' incorporates:
7007 * Constant: '<S221>/Constant4'
7008 */
7009 L4_MABX_B.RelationalOperator_j = (L4_MABX_B.DataTypeConversion2_id <=
7010 L4_MABX_P.Constant4_Value);
7011
7012 /* Outputs for Atomic SubSystem: '<S227>/If_Then_Else1' */
7013
7014 /* Constant: '<S221>/Constant4' */
7015 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_j,
7016 L4_MABX_P.Constant4_Value,
7017 L4_MABX_B.DataTypeConversion2_id,
7018 &L4_MABX_B.If_Then_Else1_kg);
7019
7020 /* End of Outputs for SubSystem: '<S227>/If_Then_Else1' */
7021
7022 /* Outputs for Atomic SubSystem: '<S227>/If_Then_Else' */
7023
7024 /* Constant: '<S221>/Constant2' */
7025 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ch,
7026 L4_MABX_P.Constant2_Value_b,
7027 L4_MABX_B.If_Then_Else1_kg.Switch,
7028 &L4_MABX_B.If_Then_Else_bo);
7029
7030 /* End of Outputs for SubSystem: '<S227>/If_Then_Else' */
7031
7032 /* DataTypeConversion: '<S221>/Data Type Conversion3' */
7033 L4_MABX_B.DataTypeConversion3_h = L4_MABX_B.SPN2978_EstEngParasiticLossesPe;
7034
7035 /* RelationalOperator: '<S228>/Relational Operator1' incorporates:
7036 * Constant: '<S221>/Constant5'
7037 */
7038 L4_MABX_B.RelationalOperator1_l = (L4_MABX_B.DataTypeConversion3_h >=
7039 L4_MABX_P.Constant5_Value);
7040
7041 /* RelationalOperator: '<S228>/Relational Operator' incorporates:
7042 * Constant: '<S221>/Constant6'
7043 */
7044 L4_MABX_B.RelationalOperator_fd = (L4_MABX_B.DataTypeConversion3_h <=
7045 L4_MABX_P.Constant6_Value);
7046
7047 /* Outputs for Atomic SubSystem: '<S228>/If_Then_Else1' */
7048
7049 /* Constant: '<S221>/Constant6' */
7050 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_fd,
7051 L4_MABX_P.Constant6_Value,
7052 L4_MABX_B.DataTypeConversion3_h,
7053 &L4_MABX_B.If_Then_Else1_dz);
7054
7055 /* End of Outputs for SubSystem: '<S228>/If_Then_Else1' */
7056
7057 /* Outputs for Atomic SubSystem: '<S228>/If_Then_Else' */
7058
7059 /* Constant: '<S221>/Constant5' */
7060 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_l,
7061 L4_MABX_P.Constant5_Value,
7062 L4_MABX_B.If_Then_Else1_dz.Switch,
7063 &L4_MABX_B.If_Then_Else_br);
7064
7065 /* End of Outputs for SubSystem: '<S228>/If_Then_Else' */
7066
7067 /* DataTypeConversion: '<S225>/Data Type Conversion5' */
7068 L4_MABX_B.DataTypeConversion5_i = L4_MABX_B.SFunction1_o1_lo;
7069
7070 /* Lookup_n-D: '<S232>/1-D Lookup Table' */
7071 L4_MABX_B.Coeff_of_drag_Cd = look1_binlcapw(L4_MABX_B.DataTypeConversion5_i,
7072 L4_MABX_P.uDLookupTable_bp01Data, L4_MABX_P.uDLookupTable_tableData, 2U);
7073
7074 /* Gain: '<S232>/KPH_TO_M//S' */
7075 L4_MABX_B.KPH_TO_MS = L4_MABX_P.KPH_TO_MS_Gain *
7076 L4_MABX_B.DataTypeConversion5_i;
7077
7078 /* Math: '<S232>/Math Function'
7079 *
7080 * About '<S232>/Math Function':
7081 * Operator: magnitude^2
7082 */
7083 PositionFinalLimited = L4_MABX_B.KPH_TO_MS;
7084 L4_MABX_B.MathFunction = PositionFinalLimited * PositionFinalLimited;
7085
7086 /* DataTypeConversion: '<S225>/Data Type Conversion' */
7087 L4_MABX_B.DataTypeConversion_ik = L4_MABX_B.SFunction1_o1_ih;
7088
7089 /* Gain: '<S232>/KPA_TO_PA' */
7090 L4_MABX_B.KPA_TO_PA = L4_MABX_P.KPA_TO_PA_Gain *
7091 L4_MABX_B.DataTypeConversion_ik;
7092
7093 /* DataTypeConversion: '<S225>/Data Type Conversion4' */
7094 L4_MABX_B.DataTypeConversion4_b = L4_MABX_B.SFunction1_o3_oc;
7095
7096 /* Sum: '<S232>/Add' incorporates:
7097 * Constant: '<S232>/Constant'
7098 */
7099 L4_MABX_B.Add_o = L4_MABX_B.DataTypeConversion4_b + L4_MABX_P.Constant_Value;
7100
7101 /* Product: '<S232>/Product' incorporates:
7102 * Constant: '<S232>/Constant1'
7103 */
7104 L4_MABX_B.Product_nm = L4_MABX_B.Add_o * L4_MABX_P.Constant1_Value_p;
7105
7106 /* Product: '<S232>/Divide' */
7107 L4_MABX_B.Air_density_kgm3 = L4_MABX_B.KPA_TO_PA / L4_MABX_B.Product_nm;
7108
7109 /* Product: '<S232>/Product1' incorporates:
7110 * Constant: '<S225>/Veh_Frontal_Area_m^2'
7111 * Constant: '<S232>/Constant2'
7112 */
7113 L4_MABX_B.Aerodynamic_resistance_Ra = L4_MABX_B.Coeff_of_drag_Cd *
7114 L4_MABX_P.Veh_Frontal_Area_m2_Value * L4_MABX_B.MathFunction *
7115 L4_MABX_B.Air_density_kgm3 * L4_MABX_P.Constant2_Value_h;
7116
7117 /* DataTypeConversion: '<S225>/Data Type Conversion6' */
7118 L4_MABX_B.DataTypeConversion6_f = L4_MABX_B.PitchAngleExRange;
7119
7120 /* Product: '<S233>/Divide' incorporates:
7121 * Constant: '<S233>/Constant2'
7122 * Constant: '<S233>/Constant3'
7123 */
7124 L4_MABX_B.grade_angle_radians = L4_MABX_B.DataTypeConversion6_f *
7125 L4_MABX_P.Constant2_Value_bc / L4_MABX_P.Constant3_Value_n;
7126
7127 /* Trigonometry: '<S233>/Trigonometric Function' */
7128 L4_MABX_B.TrigonometricFunction_a = sin(L4_MABX_B.grade_angle_radians);
7129
7130 /* Product: '<S233>/Product1' incorporates:
7131 * Constant: '<S233>/Constant1'
7132 */
7133 L4_MABX_B.Gradient_resistance_Rg = L4_MABX_B.SPN1760_GrossCombinationVehicle
7134 * L4_MABX_B.TrigonometricFunction_a * L4_MABX_P.Constant1_Value_a;
7135
7136 /* Gain: '<S236>/KPA_TO_M//S' */
7137 L4_MABX_B.KPA_TO_MS = L4_MABX_P.KPA_TO_MS_Gain *
7138 L4_MABX_B.DataTypeConversion5_i;
7139
7140 /* Product: '<S236>/Divide2' incorporates:
7141 * Constant: '<S236>/Constant2'
7142 * Constant: '<S236>/Constant6'
7143 */
7144 L4_MABX_B.Divide2_c = L4_MABX_P.Constant2_Value_bq * L4_MABX_B.KPA_TO_MS /
7145 L4_MABX_P.Constant6_Value_g;
7146
7147 /* Math: '<S236>/Math Function'
7148 *
7149 * About '<S236>/Math Function':
7150 * Operator: magnitude^2
7151 */
7152 PositionFinalLimited = L4_MABX_B.Divide2_c;
7153 L4_MABX_B.MathFunction_l = PositionFinalLimited * PositionFinalLimited;
7154
7155 /* Sum: '<S236>/Add' incorporates:
7156 * Constant: '<S236>/Constant1'
7157 */
7158 L4_MABX_B.Add_nj = L4_MABX_P.Constant1_Value_m + L4_MABX_B.MathFunction_l;
7159
7160 /* Outputs for Atomic SubSystem: '<S230>/If_Then_Else' */
7161
7162 /* Constant: '<S225>/TIRE1_tire_pressure' incorporates:
7163 * Constant: '<S230>/Truck166_tire_pressure'
7164 */
7165 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_p,
7166 L4_MABX_P.TIRE1_tire_pressure_Value,
7167 L4_MABX_P.Truck166_tire_pressure_Value,
7168 &L4_MABX_B.If_Then_Else_nr);
7169
7170 /* End of Outputs for SubSystem: '<S230>/If_Then_Else' */
7171
7172 /* Gain: '<S236>/KPA_TO_BAR' */
7173 L4_MABX_B.KPA_TO_BAR = L4_MABX_P.KPA_TO_BAR_Gain *
7174 L4_MABX_B.If_Then_Else_nr.Switch;
7175
7176 /* Product: '<S236>/Divide' */
7177 L4_MABX_B.Divide_k = L4_MABX_B.Add_nj / L4_MABX_B.KPA_TO_BAR;
7178
7179 /* Sum: '<S236>/Add1' incorporates:
7180 * Constant: '<S236>/Constant'
7181 */
7182 L4_MABX_B.Coeff_of_rolling_resistance_Cr = L4_MABX_P.Constant_Value_h +
7183 L4_MABX_B.Divide_k;
7184
7185 /* Product: '<S234>/Divide1' incorporates:
7186 * Constant: '<S234>/Constant4'
7187 * Constant: '<S234>/Constant5'
7188 */
7189 L4_MABX_B.grade_angle_radians_a = L4_MABX_B.DataTypeConversion6_f *
7190 L4_MABX_P.Constant4_Value_o / L4_MABX_P.Constant5_Value_p;
7191
7192 /* Trigonometry: '<S234>/Trigonometric Function' */
7193 L4_MABX_B.TrigonometricFunction_e = cos(L4_MABX_B.grade_angle_radians_a);
7194
7195 /* Product: '<S234>/Product2' incorporates:
7196 * Constant: '<S234>/Constant3'
7197 */
7198 L4_MABX_B.Rolling_resistance_Rr = L4_MABX_B.Coeff_of_rolling_resistance_Cr *
7199 L4_MABX_B.SPN1760_GrossCombinationVehicle *
7200 L4_MABX_B.TrigonometricFunction_e * L4_MABX_P.Constant3_Value_p;
7201
7202 /* Sum: '<S230>/Add' incorporates:
7203 * Constant: '<S230>/Constant'
7204 */
7205 L4_MABX_B.TotalTractiveForce_N = ((L4_MABX_B.Aerodynamic_resistance_Ra +
7206 L4_MABX_B.Gradient_resistance_Rg) + L4_MABX_B.Rolling_resistance_Rr) +
7207 L4_MABX_P.Constant_Value_g;
7208
7209 /* Saturate: '<S225>/Saturation' */
7210 DeltaTime = L4_MABX_B.SPN526_TransActualGearRatio;
7211 Time56 = L4_MABX_P.Saturation_LowerSat_p;
7212 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_n;
7213 if (DeltaTime > PositionFinalLimited) {
7214 L4_MABX_B.Saturation_g = PositionFinalLimited;
7215 } else if (DeltaTime < Time56) {
7216 L4_MABX_B.Saturation_g = Time56;
7217 } else {
7218 L4_MABX_B.Saturation_g = DeltaTime;
7219 }
7220
7221 /* End of Saturate: '<S225>/Saturation' */
7222
7223 /* MATLAB Function: '<S225>/F_wheel_to_Tq_eng' incorporates:
7224 * Constant: '<S225>/N_rar'
7225 * Constant: '<S225>/R_wheel_m'
7226 * Constant: '<S225>/eta'
7227 */
7228 /* MATLAB Function 'STATE_CONTROL_10ms/Throttle_controller_gov/Determine_engine_torque_and_losses/CalculateRoadLoadTorque/F_wheel_to_Tq_eng': '<S231>:1' */
7229 /* '<S231>:1:3' */
7230 L4_MABX_B.road_load_tq = L4_MABX_B.TotalTractiveForce_N *
7231 L4_MABX_P.R_wheel_m_Value / L4_MABX_P.N_rar_Value / L4_MABX_B.Saturation_g
7232 / L4_MABX_P.eta_Value;
7233
7234 /* DataTypeConversion: '<S225>/Data Type Conversion1' */
7235 L4_MABX_B.DataTypeConversion1_be = L4_MABX_B.SPN544_EngineReferenceTorque;
7236
7237 /* Product: '<S225>/Divide' */
7238 L4_MABX_B.RoadLoadTorque_fract = L4_MABX_B.road_load_tq /
7239 L4_MABX_B.DataTypeConversion1_be;
7240
7241 /* Gain: '<S225>/Gain' */
7242 L4_MABX_B.RoadLoadTorque_pct = L4_MABX_P.Gain_Gain_n *
7243 L4_MABX_B.RoadLoadTorque_fract;
7244
7245 /* Outputs for Atomic SubSystem: '<S221>/If_Then_Else' */
7246
7247 /* Constant: '<S221>/UseFeedForwardRoadLoad' incorporates:
7248 * Constant: '<S221>/ZeroRoadLoadCPV'
7249 */
7250 L4_MABX_If_Then_Else(L4_MABX_P.UseFeedForwardRoadLoad_Value,
7251 L4_MABX_B.RoadLoadTorque_pct,
7252 L4_MABX_P.ZeroRoadLoadCPV_Value,
7253 &L4_MABX_B.If_Then_Else_a);
7254
7255 /* End of Outputs for SubSystem: '<S221>/If_Then_Else' */
7256
7257 /* Sum: '<S221>/Add1' */
7258 L4_MABX_B.FeedForwardTorque_pct = (L4_MABX_B.If_Then_Else_bo.Switch +
7259 L4_MABX_B.If_Then_Else_br.Switch) + L4_MABX_B.If_Then_Else_a.Switch;
7260
7261 /* UnitDelay: '<S222>/Unit_Delay1' */
7262 L4_MABX_B.Unit_Delay1_m = L4_MABX_DW.Unit_Delay1_DSTATE_p1;
7263
7264 /* Logic: '<S222>/Logical Operator' incorporates:
7265 * Constant: '<S222>/Constant1'
7266 */
7267 L4_MABX_B.f_gpid_reset = (L4_MABX_P.Constant1_Value_g1 ||
7268 L4_MABX_B.Unit_Delay1_m);
7269
7270 /* Sum: '<S222>/Subtract' */
7271 L4_MABX_B.Subtract_f = L4_MABX_B.VSPD_TARGET_KPH_APV_g -
7272 L4_MABX_B.VSPD_HYST_KPH_APV_f;
7273
7274 /* RelationalOperator: '<S222>/Relational Operator' */
7275 L4_MABX_B.RelationalOperator_fl = (L4_MABX_B.DataTypeConversion4_i >
7276 L4_MABX_B.Subtract_f);
7277
7278 /* UnitDelay: '<S222>/Unit_Delay' */
7279 L4_MABX_B.Unit_Delay_d5 = L4_MABX_DW.Unit_Delay_DSTATE_lq;
7280
7281 /* RelationalOperator: '<S222>/Relational Operator1' */
7282 L4_MABX_B.RelationalOperator1_d3 = (L4_MABX_B.RelationalOperator_fl !=
7283 L4_MABX_B.Unit_Delay_d5);
7284
7285 /* Lookup_n-D: '<S243>/2D_Lookup_Table' */
7286 L4_MABX_B.uD_Lookup_Table_am = look2_binlcapw
7287 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7288 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7289 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KP_DATA_MPV,
7290 L4_MABX_P.uD_Lookup_Table_maxIndex, 8U);
7291
7292 /* Lookup_n-D: '<S244>/2D_Lookup_Table' */
7293 L4_MABX_B.uD_Lookup_Table_o = look2_binlcapw
7294 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7295 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7296 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KI_DATA_MPV,
7297 L4_MABX_P.uD_Lookup_Table_maxIndex_p, 8U);
7298
7299 /* Lookup_n-D: '<S245>/2D_Lookup_Table' */
7300 L4_MABX_B.uD_Lookup_Table_h = look2_binlcapw
7301 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7302 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7303 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KD_DATA_MPV,
7304 L4_MABX_P.uD_Lookup_Table_maxIndex_a, 8U);
7305
7306 /* Abs: '<S246>/Abs' */
7307 L4_MABX_B.Abs_igm = fabs(L4_MABX_B.uD_Lookup_Table_o);
7308
7309 /* Abs: '<S246>/Abs1' */
7310 L4_MABX_B.Abs1_a = fabs(L4_MABX_B.uD_Lookup_Table_h);
7311
7312 /* UnitDelay: '<S249>/Unit_Delay' */
7313 L4_MABX_B.Unit_Delay_i04 = L4_MABX_DW.Unit_Delay_DSTATE_be;
7314
7315 /* Logic: '<S249>/Logical Operator1' */
7316 L4_MABX_B.LogicalOperator1_o = (L4_MABX_B.Unit_Delay_i04 ||
7317 L4_MABX_B.f_gpid_reset);
7318
7319 /* UnitDelay: '<S269>/Unit_Delay1' */
7320 L4_MABX_B.Unit_Delay1_dw = L4_MABX_DW.Unit_Delay1_DSTATE_h;
7321
7322 /* Logic: '<S269>/Logical Operator' */
7323 L4_MABX_B.LogicalOperator_at = (L4_MABX_B.LogicalOperator1_o ||
7324 L4_MABX_B.Unit_Delay1_dw);
7325
7326 /* UnitDelay: '<S270>/Unit_Delay' */
7327 L4_MABX_B.Unit_Delay_ne = L4_MABX_DW.Unit_Delay_DSTATE_fic;
7328
7329 /* Logic: '<S270>/Logical Operator1' */
7330 L4_MABX_B.LogicalOperator1_k = (L4_MABX_B.LogicalOperator1_o ||
7331 L4_MABX_B.Unit_Delay_ne);
7332
7333 /* UnitDelay: '<S274>/FixPt Unit Delay2' */
7334 L4_MABX_B.FixPtUnitDelay2_a = L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq;
7335
7336 /* UnitDelay: '<S274>/FixPt Unit Delay1' */
7337 L4_MABX_B.Xold_a = L4_MABX_DW.FixPtUnitDelay1_DSTATE_a;
7338
7339 /* Switch: '<S274>/Init' */
7340 if (L4_MABX_B.FixPtUnitDelay2_a != 0) {
7341 L4_MABX_B.Init_pu = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
7342 } else {
7343 L4_MABX_B.Init_pu = L4_MABX_B.Xold_a;
7344 }
7345
7346 /* End of Switch: '<S274>/Init' */
7347
7348 /* Abs: '<S270>/Abs' incorporates:
7349 * Constant: '<S214>/TqDemSlewInc'
7350 */
7351 L4_MABX_B.Abs_n = fabs(L4_MABX_P.TqDemSlewInc_Value);
7352
7353 /* Product: '<S270>/Product1' incorporates:
7354 * Constant: '<S214>/TqDemDt'
7355 */
7356 L4_MABX_B.Product1_g = L4_MABX_B.Abs_n * L4_MABX_P.TqDemDt_Value;
7357
7358 /* Sum: '<S270>/Add1' */
7359 L4_MABX_B.Add1_g = L4_MABX_B.Init_pu + L4_MABX_B.Product1_g;
7360
7361 /* MinMax: '<S270>/MinMax2' */
7362 DeltaTime = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
7363 PositionFinalLimited = L4_MABX_B.Add1_g;
7364 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7365 PositionFinalLimited = DeltaTime;
7366 }
7367
7368 L4_MABX_B.MinMax2_n = PositionFinalLimited;
7369
7370 /* End of MinMax: '<S270>/MinMax2' */
7371
7372 /* Abs: '<S270>/Abs1' incorporates:
7373 * Constant: '<S214>/TqDemSlewDec'
7374 */
7375 L4_MABX_B.Abs1_d = fabs(L4_MABX_P.TqDemSlewDec_Value);
7376
7377 /* Product: '<S270>/Product2' incorporates:
7378 * Constant: '<S214>/TqDemDt'
7379 */
7380 L4_MABX_B.Product2_bn = L4_MABX_P.TqDemDt_Value * L4_MABX_B.Abs1_d;
7381
7382 /* Sum: '<S270>/Subtract1' */
7383 L4_MABX_B.Subtract1_o = L4_MABX_B.Init_pu - L4_MABX_B.Product2_bn;
7384
7385 /* MinMax: '<S270>/MinMax1' */
7386 DeltaTime = L4_MABX_B.MinMax2_n;
7387 PositionFinalLimited = L4_MABX_B.Subtract1_o;
7388 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7389 PositionFinalLimited = DeltaTime;
7390 }
7391
7392 L4_MABX_B.MinMax1_g = PositionFinalLimited;
7393
7394 /* End of MinMax: '<S270>/MinMax1' */
7395
7396 /* Outputs for Atomic SubSystem: '<S270>/If_Then_Else' */
7397 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_k,
7398 L4_MABX_B.DataTypeConversion4_i, L4_MABX_B.MinMax1_g,
7399 &L4_MABX_B.If_Then_Else_cp);
7400
7401 /* End of Outputs for SubSystem: '<S270>/If_Then_Else' */
7402
7403 /* Sum: '<S247>/Subtract' */
7404 L4_MABX_B.Subtract_jb = L4_MABX_B.If_Then_Else_cp.Switch -
7405 L4_MABX_B.DataTypeConversion4_i;
7406
7407 /* MinMax: '<S269>/MinMax1' incorporates:
7408 * Constant: '<S214>/TqDemDt'
7409 * Constant: '<S214>/TqDemTFildCtrlErrorSecs'
7410 */
7411 DeltaTime = L4_MABX_P.TqDemDt_Value;
7412 PositionFinalLimited = L4_MABX_P.TqDemTFildCtrlErrorSecs_Value;
7413 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7414 PositionFinalLimited = DeltaTime;
7415 }
7416
7417 L4_MABX_B.MinMax1_d = PositionFinalLimited;
7418
7419 /* End of MinMax: '<S269>/MinMax1' */
7420
7421 /* Saturate: '<S269>/Saturation' */
7422 DeltaTime = L4_MABX_B.MinMax1_d;
7423 Time56 = L4_MABX_P.Saturation_LowerSat_g5;
7424 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_f;
7425 if (DeltaTime > PositionFinalLimited) {
7426 L4_MABX_B.Saturation_d = PositionFinalLimited;
7427 } else if (DeltaTime < Time56) {
7428 L4_MABX_B.Saturation_d = Time56;
7429 } else {
7430 L4_MABX_B.Saturation_d = DeltaTime;
7431 }
7432
7433 /* End of Saturate: '<S269>/Saturation' */
7434
7435 /* Product: '<S269>/Divide' incorporates:
7436 * Constant: '<S214>/TqDemDt'
7437 */
7438 L4_MABX_B.Divide_n = L4_MABX_P.TqDemDt_Value / L4_MABX_B.Saturation_d;
7439
7440 /* Product: '<S269>/Product2' */
7441 L4_MABX_B.Product2_l = L4_MABX_B.Subtract_jb * L4_MABX_B.Divide_n;
7442
7443 /* Sum: '<S269>/Subtract1' incorporates:
7444 * Constant: '<S269>/Constant1'
7445 */
7446 L4_MABX_B.Subtract1_k = L4_MABX_P.Constant1_Value_ci - L4_MABX_B.Divide_n;
7447
7448 /* UnitDelay: '<S269>/Unit_Delay2' */
7449 L4_MABX_B.Unit_Delay2_o = L4_MABX_DW.Unit_Delay2_DSTATE_m;
7450
7451 /* Product: '<S269>/Product1' */
7452 L4_MABX_B.Product1_p = L4_MABX_B.Subtract1_k * L4_MABX_B.Unit_Delay2_o;
7453
7454 /* Sum: '<S269>/Add1' */
7455 L4_MABX_B.Add1_i = L4_MABX_B.Product2_l + L4_MABX_B.Product1_p;
7456
7457 /* Outputs for Atomic SubSystem: '<S269>/If_Then_Else' */
7458 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_at, L4_MABX_B.Subtract_jb,
7459 L4_MABX_B.Add1_i, &L4_MABX_B.If_Then_Else_k);
7460
7461 /* End of Outputs for SubSystem: '<S269>/If_Then_Else' */
7462
7463 /* RelationalOperator: '<S254>/Compare' incorporates:
7464 * Constant: '<S254>/Constant'
7465 */
7466 L4_MABX_B.Compare_go = (L4_MABX_B.Abs1_a >
7467 L4_MABX_P.CompareToConstant1_const_i);
7468
7469 /* Outputs for Enabled SubSystem: '<S246>/Calculate_D_term' */
7470
7471 /* Constant: '<S214>/TqDemDt' incorporates:
7472 * Constant: '<S214>/TqDemTFildTSecs'
7473 */
7474 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_go, L4_MABX_B.uD_Lookup_Table_h,
7475 L4_MABX_P.TqDemDt_Value, L4_MABX_B.LogicalOperator1_o,
7476 L4_MABX_B.If_Then_Else_k.Switch, L4_MABX_P.TqDemTFildTSecs_Value,
7477 &L4_MABX_B.Calculate_D_term_h, &L4_MABX_DW.Calculate_D_term_h,
7478 &L4_MABX_P.Calculate_D_term_h);
7479
7480 /* End of Outputs for SubSystem: '<S246>/Calculate_D_term' */
7481
7482 /* Product: '<S252>/Product' */
7483 L4_MABX_B.Product_i = L4_MABX_B.uD_Lookup_Table_am *
7484 L4_MABX_B.If_Then_Else_k.Switch;
7485
7486 /* RelationalOperator: '<S214>/Relational Operator' */
7487 L4_MABX_B.RelationalOperator_ao = (L4_MABX_B.SPN524_TransSelectedGear !=
7488 L4_MABX_B.SPN523_TransCurrentGear);
7489
7490 /* UnitDelay: '<S224>/Unit_Delay' */
7491 L4_MABX_B.Unit_Delay_m4 = L4_MABX_DW.Unit_Delay_DSTATE_fz;
7492
7493 /* RelationalOperator: '<S253>/Compare' incorporates:
7494 * Constant: '<S253>/Constant'
7495 */
7496 L4_MABX_B.Compare_p = (L4_MABX_B.Abs_igm >
7497 L4_MABX_P.CompareToConstant_const_d);
7498
7499 /* Outputs for Enabled SubSystem: '<S246>/Calculate_I_term' */
7500
7501 /* Constant: '<S214>/TqDemDt' incorporates:
7502 * Constant: '<S214>/GpidAwCondIntegration'
7503 * Constant: '<S214>/TqDemAwHyst'
7504 */
7505 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_p, L4_MABX_B.Product_i,
7506 L4_MABX_B.uD_Lookup_Table_o, L4_MABX_B.If_Then_Else_ct.Switch,
7507 L4_MABX_B.If_Then_Else_k.Switch, L4_MABX_B.LogicalOperator1_o,
7508 L4_MABX_P.TqDemDt_Value, L4_MABX_B.FeedForwardTorque_pct,
7509 L4_MABX_P.GpidAwCondIntegration_Value, L4_MABX_P.TqDemAwHyst_Value,
7510 L4_MABX_B.RelationalOperator_ao, L4_MABX_B.Unit_Delay_m4,
7511 &L4_MABX_B.Calculate_I_term_n, &L4_MABX_DW.Calculate_I_term_n,
7512 &L4_MABX_P.Calculate_I_term_n);
7513
7514 /* End of Outputs for SubSystem: '<S246>/Calculate_I_term' */
7515
7516 /* RelationalOperator: '<S272>/min_relop' incorporates:
7517 * Constant: '<S214>/TqDemSlewInc'
7518 * Constant: '<S272>/min_val'
7519 */
7520 L4_MABX_B.min_relop_cb = (L4_MABX_P.CheckStaticLowerBound_min_b <=
7521 L4_MABX_P.TqDemSlewInc_Value);
7522
7523 /* Assertion: '<S272>/Assertion' */
7524 utAssert(L4_MABX_B.min_relop_cb);
7525
7526 /* Sum: '<S248>/Add' */
7527 L4_MABX_B.Add_ds = ((L4_MABX_B.Product_i +
7528 L4_MABX_B.Calculate_I_term_n.If_Then_Else.Switch) +
7529 L4_MABX_B.Calculate_D_term_h.Subtract) +
7530 L4_MABX_B.FeedForwardTorque_pct;
7531
7532 /* RelationalOperator: '<S275>/Relational Operator1' incorporates:
7533 * Constant: '<S214>/TqDemLimMax'
7534 */
7535 L4_MABX_B.RelationalOperator1_ja = (L4_MABX_B.Add_ds >=
7536 L4_MABX_P.TqDemLimMax_Value);
7537
7538 /* RelationalOperator: '<S275>/Relational Operator' incorporates:
7539 * Constant: '<S214>/TqDemLimMin'
7540 */
7541 L4_MABX_B.RelationalOperator_p = (L4_MABX_B.Add_ds <=
7542 L4_MABX_P.TqDemLimMin_Value);
7543
7544 /* Outputs for Atomic SubSystem: '<S275>/If_Then_Else1' */
7545
7546 /* Constant: '<S214>/TqDemLimMin' */
7547 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_p,
7548 L4_MABX_P.TqDemLimMin_Value, L4_MABX_B.Add_ds,
7549 &L4_MABX_B.If_Then_Else1_h3);
7550
7551 /* End of Outputs for SubSystem: '<S275>/If_Then_Else1' */
7552
7553 /* Outputs for Atomic SubSystem: '<S275>/If_Then_Else' */
7554
7555 /* Constant: '<S214>/TqDemLimMax' */
7556 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ja,
7557 L4_MABX_P.TqDemLimMax_Value,
7558 L4_MABX_B.If_Then_Else1_h3.Switch,
7559 &L4_MABX_B.If_Then_Else_pi);
7560
7561 /* End of Outputs for SubSystem: '<S275>/If_Then_Else' */
7562
7563 /* SignalConversion: '<S214>/OutportBufferForPID_d_term' */
7564 L4_MABX_B.PID_d_term_c = L4_MABX_B.Calculate_D_term_h.Subtract;
7565
7566 /* SignalConversion: '<S214>/OutportBufferForPID_hold_i_term_f' */
7567 L4_MABX_B.PID_hold_i_term_f_b =
7568 L4_MABX_B.Calculate_I_term_n.LogicalOperator2;
7569
7570 /* SignalConversion: '<S214>/OutportBufferForPID_i_term' */
7571 L4_MABX_B.PID_i_term_c = L4_MABX_B.Calculate_I_term_n.If_Then_Else.Switch;
7572 } else {
7573 if (L4_MABX_DW.Throttle_controller_gov_MODE) {
7574 /* Disable for Enabled SubSystem: '<S246>/Calculate_D_term' */
7575 if (L4_MABX_DW.Calculate_D_term_h.Calculate_D_term_MODE) {
7576 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term_h,
7577 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
7578 }
7579
7580 /* End of Disable for SubSystem: '<S246>/Calculate_D_term' */
7581
7582 /* Disable for Enabled SubSystem: '<S246>/Calculate_I_term' */
7583 if (L4_MABX_DW.Calculate_I_term_n.Calculate_I_term_MODE) {
7584 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term_n,
7585 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
7586 }
7587
7588 /* End of Disable for SubSystem: '<S246>/Calculate_I_term' */
7589
7590 /* Disable for Outport: '<S214>/PID_output' */
7591 L4_MABX_B.If_Then_Else_pi.Switch = L4_MABX_P.PID_output_Y0_c;
7592
7593 /* Disable for Outport: '<S214>/PID_output_unlim' */
7594 L4_MABX_B.Add_ds = L4_MABX_P.PID_output_unlim_Y0;
7595
7596 /* Disable for Outport: '<S214>/PID_control_error' */
7597 L4_MABX_B.If_Then_Else_k.Switch = L4_MABX_P.PID_control_error_Y0;
7598
7599 /* Disable for Outport: '<S214>/PID_p_term' */
7600 L4_MABX_B.Product_i = L4_MABX_P.PID_p_term_Y0;
7601
7602 /* Disable for Outport: '<S214>/PID_i_term' */
7603 L4_MABX_B.PID_i_term_c = L4_MABX_P.PID_i_term_Y0;
7604
7605 /* Disable for Outport: '<S214>/PID_d_term' */
7606 L4_MABX_B.PID_d_term_c = L4_MABX_P.PID_d_term_Y0;
7607
7608 /* Disable for Outport: '<S214>/PID_hold_i_term_f' */
7609 L4_MABX_B.PID_hold_i_term_f_b = L4_MABX_P.PID_hold_i_term_f_Y0;
7610 L4_MABX_DW.Throttle_controller_gov_MODE = false;
7611 }
7612 }
7613
7614 /* End of Outputs for SubSystem: '<S79>/Throttle_controller_gov' */
7615
7616 /* Switch: '<S79>/Switch' incorporates:
7617 * Constant: '<S79>/Constant3'
7618 */
7619 if (L4_MABX_B.F_Brake_control_active) {
7620 L4_MABX_B.ThrottlePID_Y_m = L4_MABX_P.Constant3_Value;
7621 } else {
7622 /* DataTypeConversion: '<S79>/Data Type Conversion3' */
7623 L4_MABX_B.DataTypeConversion3_m = L4_MABX_B.SPN544_EngineReferenceTorque;
7624
7625 /* Product: '<S79>/Product' incorporates:
7626 * Constant: '<S79>/Constant2'
7627 */
7628 L4_MABX_B.ThrottlePID_Y_c = L4_MABX_B.If_Then_Else_pi.Switch *
7629 L4_MABX_B.DataTypeConversion3_m * L4_MABX_P.Constant2_Value;
7630 L4_MABX_B.ThrottlePID_Y_m = L4_MABX_B.ThrottlePID_Y_c;
7631 }
7632
7633 /* End of Switch: '<S79>/Switch' */
7634
7635 /* MultiPortSwitch: '<S83>/Multiport Switch' incorporates:
7636 * Constant: '<S83>/APTC_DISABLED_PEDAL_POSITION_APV'
7637 * Constant: '<S83>/APTC_PEDAL_POS_SIG_SOURCE_APV'
7638 */
7639 switch (L4_MABX_P.APTC_PEDAL_POS_SIG_SOURCE_APV_V) {
7640 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_DISABLED:
7641 L4_MABX_B.MultiportSwitch = L4_MABX_P.APTC_DISABLED_PEDAL_POSITION_AP;
7642 break;
7643
7644 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_CAN_EEC2_00:
7645 L4_MABX_B.MultiportSwitch = L4_MABX_B.uDLookupTable;
7646 break;
7647
7648 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_SW_EMULATION:
7649 L4_MABX_B.MultiportSwitch = L4_MABX_B.ThrottlePID_Y_m;
7650 break;
7651
7652 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_CAN_EEC2_00_AND_SW_EMULATION:
7653 /* MinMax: '<S83>/MinMax' */
7654 DeltaTime = L4_MABX_B.uDLookupTable;
7655 PositionFinalLimited = L4_MABX_B.ThrottlePID_Y_m;
7656 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7657 PositionFinalLimited = DeltaTime;
7658 }
7659
7660 L4_MABX_B.MinMax_p = PositionFinalLimited;
7661
7662 /* End of MinMax: '<S83>/MinMax' */
7663 L4_MABX_B.MultiportSwitch = L4_MABX_B.MinMax_p;
7664 break;
7665
7666 default:
7667 L4_MABX_B.MultiportSwitch = L4_MABX_P.APTC_DISABLED_PEDAL_POSITION_AP;
7668 break;
7669 }
7670
7671 /* End of MultiPortSwitch: '<S83>/Multiport Switch' */
7672
7673 /* Outputs for Atomic SubSystem: '<S83>/If_Then_Else1' */
7674 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_dy, L4_MABX_B.uDLookupTable,
7675 L4_MABX_B.MultiportSwitch, &L4_MABX_B.If_Then_Else1_l);
7676
7677 /* End of Outputs for SubSystem: '<S83>/If_Then_Else1' */
7678
7679 /* DataTypeConversion: '<S82>/Data Type Conversion1' */
7680 L4_MABX_B.DataTypeConversion1_n3 = L4_MABX_B.SFunction1_o5_mg;
7681
7682 /* Lookup_n-D: '<S85>/2D_Lookup_Table' */
7683 L4_MABX_B.uD_Lookup_Table = look2_binlcapw(L4_MABX_B.If_Then_Else1_l.Switch,
7684 L4_MABX_B.DataTypeConversion1_n3, APTC_TRQ_PED_INV_MAP_TRQ_STEPS,
7685 APTC_TRQ_PED_TRQ_ESPD_STEP_MPV, APTC_TRQ_PED_INV_MAP_PED_POS_MPV,
7686 L4_MABX_P.uD_Lookup_Table_maxIndex_h, 83U);
7687
7688 /* Logic: '<S82>/Logical Operator' */
7689 L4_MABX_B.LogicalOperator_j2 = !AutonomousEnabled;
7690
7691 /* Outputs for Atomic SubSystem: '<S82>/If_Then_Else' */
7692 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_j2, Pedal_pwm_position,
7693 L4_MABX_B.uD_Lookup_Table, &L4_MABX_B.If_Then_Else_f);
7694
7695 /* End of Outputs for SubSystem: '<S82>/If_Then_Else' */
7696
7697 /* RelationalOperator: '<S75>/Relational Operator' incorporates:
7698 * Constant: '<S75>/Constant'
7699 */
7700 L4_MABX_B.APTC_arb_pedal_low_idl_sw_o = (APTC_PEDAL_LOW_IDLE_SW_THR_APV >
7701 L4_MABX_B.If_Then_Else_f.Switch);
7702
7703 /* DataTypeConversion: '<S84>/Data Type Conversion1' */
7704 L4_MABX_B.DataTypeConversion1_a = L4_MABX_B.SPN544_EngineReferenceTorque;
7705
7706 /* RelationalOperator: '<S89>/Relational Operator1' incorporates:
7707 * Constant: '<S84>/EngRefTqLimHigh'
7708 */
7709 L4_MABX_B.RelationalOperator1_i = (L4_MABX_B.DataTypeConversion1_a >=
7710 L4_MABX_P.EngRefTqLimHigh_Value);
7711
7712 /* RelationalOperator: '<S89>/Relational Operator' incorporates:
7713 * Constant: '<S84>/EngRefTqLimLow'
7714 */
7715 L4_MABX_B.RelationalOperator_c = (L4_MABX_B.DataTypeConversion1_a <=
7716 L4_MABX_P.EngRefTqLimLow_Value);
7717
7718 /* Outputs for Atomic SubSystem: '<S89>/If_Then_Else1' */
7719
7720 /* Constant: '<S84>/EngRefTqLimLow' */
7721 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_c,
7722 L4_MABX_P.EngRefTqLimLow_Value,
7723 L4_MABX_B.DataTypeConversion1_a,
7724 &L4_MABX_B.If_Then_Else1_lo);
7725
7726 /* End of Outputs for SubSystem: '<S89>/If_Then_Else1' */
7727
7728 /* Outputs for Atomic SubSystem: '<S89>/If_Then_Else' */
7729
7730 /* Constant: '<S84>/EngRefTqLimHigh' */
7731 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_i,
7732 L4_MABX_P.EngRefTqLimHigh_Value,
7733 L4_MABX_B.If_Then_Else1_lo.Switch,
7734 &L4_MABX_B.If_Then_Else_ff);
7735
7736 /* End of Outputs for SubSystem: '<S89>/If_Then_Else' */
7737
7738 /* Sum: '<S84>/Subtract' incorporates:
7739 * Constant: '<S84>/FrictionTrqAtRefTrqSpeed'
7740 */
7741 L4_MABX_B.Subtract_j = L4_MABX_B.If_Then_Else_ff.Switch -
7742 L4_MABX_P.FrictionTrqAtRefTrqSpeed_Value;
7743
7744 /* Product: '<S84>/Divide' incorporates:
7745 * Constant: '<S84>/Constant1'
7746 */
7747 L4_MABX_B.Divide_h = L4_MABX_B.If_Then_Else1_l.Switch *
7748 L4_MABX_P.Constant1_Value_fg / L4_MABX_B.Subtract_j;
7749
7750 /* RelationalOperator: '<S90>/Relational Operator1' incorporates:
7751 * Constant: '<S84>/APPTqPercentMax'
7752 */
7753 L4_MABX_B.RelationalOperator1_a = (L4_MABX_B.Divide_h >=
7754 L4_MABX_P.APPTqPercentMax_Value);
7755
7756 /* RelationalOperator: '<S90>/Relational Operator' incorporates:
7757 * Constant: '<S84>/APPTqPercentMin'
7758 */
7759 L4_MABX_B.RelationalOperator_n = (L4_MABX_B.Divide_h <=
7760 L4_MABX_P.APPTqPercentMin_Value);
7761
7762 /* Outputs for Atomic SubSystem: '<S90>/If_Then_Else1' */
7763
7764 /* Constant: '<S84>/APPTqPercentMin' */
7765 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_n,
7766 L4_MABX_P.APPTqPercentMin_Value, L4_MABX_B.Divide_h,
7767 &L4_MABX_B.If_Then_Else1_p);
7768
7769 /* End of Outputs for SubSystem: '<S90>/If_Then_Else1' */
7770
7771 /* Outputs for Atomic SubSystem: '<S90>/If_Then_Else' */
7772
7773 /* Constant: '<S84>/APPTqPercentMax' */
7774 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_a,
7775 L4_MABX_P.APPTqPercentMax_Value,
7776 L4_MABX_B.If_Then_Else1_p.Switch,
7777 &L4_MABX_B.If_Then_Else_i);
7778
7779 /* End of Outputs for SubSystem: '<S90>/If_Then_Else' */
7780
7781 /* MultiPortSwitch: '<S76>/Autonomous Mode Switch' incorporates:
7782 * Constant: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
7783 * Constant: '<S76>/GhostMode'
7784 */
7785 if (AUTONOMOUS_MODE_SELECTOR_APV == ENUM_AUTONOMOUS_MODE_T_AUTO) {
7786 AutonomousOutputEnabled = AutonomousEnabled;
7787 } else {
7788 AutonomousOutputEnabled = (L4_MABX_P.GhostMode_Value != 0);
7789 }
7790
7791 /* End of MultiPortSwitch: '<S76>/Autonomous Mode Switch' */
7792
7793 /* Switch: '<S76>/Switch' incorporates:
7794 * Constant: '<S76>/Failure'
7795 * Constant: '<S76>/Running'
7796 */
7797 if (EStop) {
7798 tmp_1 = L4_MABX_P.Running_Value;
7799 if (tmp_1 < 0) {
7800 tmp_1 = 0;
7801 }
7802
7803 MABX_Mode = (uint8_T)tmp_1;
7804 } else {
7805 tmp_1 = L4_MABX_P.Failure_Value;
7806 if (tmp_1 < 0) {
7807 tmp_1 = 0;
7808 }
7809
7810 MABX_Mode = (uint8_T)tmp_1;
7811 }
7812
7813 /* End of Switch: '<S76>/Switch' */
7814
7815 /* DataTypeConversion: '<S106>/Data Type Conversion2' */
7816 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o8_ci);
7817 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
7818 PositionFinalLimited = 0.0;
7819 } else {
7820 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
7821 }
7822
7823 L4_MABX_B.DataTypeConversion2_ew = (uint8_T)(PositionFinalLimited < 0.0 ?
7824 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
7825 (uint8_T)PositionFinalLimited);
7826
7827 /* End of DataTypeConversion: '<S106>/Data Type Conversion2' */
7828
7829 /* DataTypeConversion: '<S106>/Data Type Conversion' */
7830 L4_MABX_B.DataTypeConversion_lr = (ENUM_SWITCH_T)
7831 L4_MABX_B.DataTypeConversion2_ew;
7832
7833 /* DataTypeConversion: '<S106>/Data Type Conversion3' */
7834 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o4_h5);
7835 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
7836 PositionFinalLimited = 0.0;
7837 } else {
7838 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
7839 }
7840
7841 L4_MABX_B.DataTypeConversion3_ps = (uint8_T)(PositionFinalLimited < 0.0 ?
7842 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
7843 (uint8_T)PositionFinalLimited);
7844
7845 /* End of DataTypeConversion: '<S106>/Data Type Conversion3' */
7846
7847 /* DataTypeConversion: '<S106>/Data Type Conversion1' */
7848 L4_MABX_B.DataTypeConversion1_lu = (ENUM_SWITCH_T)
7849 L4_MABX_B.DataTypeConversion3_ps;
7850
7851 /* RelationalOperator: '<S106>/Relational Operator3' incorporates:
7852 * Constant: '<S106>/CPV3'
7853 */
7854 L4_MABX_B.RelationalOperator3_c[0] = (L4_MABX_B.DataTypeConversion_lr ==
7855 L4_MABX_P.CPV3_Value_p);
7856 L4_MABX_B.RelationalOperator3_c[1] = (L4_MABX_B.DataTypeConversion1_lu ==
7857 L4_MABX_P.CPV3_Value_p);
7858
7859 /* Logic: '<S106>/Logical Operator4' */
7860 L4_MABX_B.LogicalOperator4_o = (L4_MABX_B.RelationalOperator3_c[0] &&
7861 L4_MABX_B.RelationalOperator3_c[1]);
7862
7863 /* Gain: '<S106>/Gain4' */
7864 L4_MABX_B.Primary_brake_circuit_pressure_ = L4_MABX_P.Gain4_Gain *
7865 L4_MABX_B.PressureP42;
7866
7867 /* Gain: '<S106>/Gain5' */
7868 L4_MABX_B.Secondary_brake_circuit_pressur = L4_MABX_P.Gain5_Gain *
7869 L4_MABX_B.PressureP4;
7870
7871 /* RelationalOperator: '<S106>/Relational Operator4' incorporates:
7872 * Constant: '<S106>/BRAKE_APPL_THRESHOLD_KPA_APV'
7873 */
7874 L4_MABX_B.RelationalOperator4[0] = (L4_MABX_B.Primary_brake_circuit_pressure_ >
7875 L4_MABX_P.BRAKE_APPL_THRESHOLD_KPA_APV_Va);
7876 L4_MABX_B.RelationalOperator4[1] = (L4_MABX_B.Secondary_brake_circuit_pressur >
7877 L4_MABX_P.BRAKE_APPL_THRESHOLD_KPA_APV_Va);
7878
7879 /* Logic: '<S106>/Logical Operator3' */
7880 L4_MABX_B.F_Service_brake_pressure_applie = (L4_MABX_B.RelationalOperator4[0] ||
7881 L4_MABX_B.RelationalOperator4[1]);
7882
7883 /* RelationalOperator: '<S106>/Relational Operator6' incorporates:
7884 * Constant: '<S106>/CPV4'
7885 */
7886 L4_MABX_B.RelationalOperator6[0] = (L4_MABX_B.DataTypeConversion_lr ==
7887 L4_MABX_P.CPV4_Value_n);
7888 L4_MABX_B.RelationalOperator6[1] = (L4_MABX_B.DataTypeConversion1_lu ==
7889 L4_MABX_P.CPV4_Value_n);
7890
7891 /* Logic: '<S106>/Logical Operator' */
7892 L4_MABX_B.F_Brake_sw_CAN = (L4_MABX_B.RelationalOperator6[0] ||
7893 L4_MABX_B.RelationalOperator6[1]);
7894
7895 /* Logic: '<S106>/Logical Operator5' */
7896 L4_MABX_B.LogicalOperator5_n = (L4_MABX_B.F_Service_brake_pressure_applie ||
7897 L4_MABX_B.F_Brake_sw_CAN);
7898
7899 /* Outputs for Atomic SubSystem: '<S106>/If_Then_Else' */
7900 L4_MABX_If_Then_Else_l(L4_MABX_B.LogicalOperator4_o,
7901 L4_MABX_B.F_Service_brake_pressure_applie, L4_MABX_B.LogicalOperator5_n,
7902 &L4_MABX_B.If_Then_Else_l);
7903
7904 /* End of Outputs for SubSystem: '<S106>/If_Then_Else' */
7905
7906 /* RelationalOperator: '<S110>/Relational Operator1' incorporates:
7907 * Constant: '<S110>/SPN904_ZERO_SPD_CPV'
7908 */
7909 L4_MABX_B.F_Vehicle_stopped = (L4_MABX_B.DataTypeConversion5_o <=
7910 L4_MABX_P.SPN904_ZERO_SPD_CPV_Value);
7911
7912 /* Sum: '<S107>/Add' */
7913 L4_MABX_B.Add_d = L4_MABX_B.Primary_brake_circuit_pressure_ +
7914 L4_MABX_B.Secondary_brake_circuit_pressur;
7915
7916 /* Gain: '<S107>/Gain' */
7917 L4_MABX_B.Gain_go = L4_MABX_P.Gain_Gain_g * L4_MABX_B.Add_d;
7918
7919 /* Outputs for Enabled SubSystem: '<S107>/Determine_shift_interlock_brake_pressure_target' incorporates:
7920 * EnablePort: '<S186>/Enable'
7921 */
7922 if (L4_MABX_DW.Determine_shift_interlock_brake) {
7923 /* Disable for Outport: '<S186>/Shift_interlock_brake_press_target_kpa' */
7924 L4_MABX_B.If_Then_Else_il.Switch = L4_MABX_P.Shift_interlock_brake_press_tar;
7925
7926 /* Disable for Outport: '<S186>/F_Shift_interlock_conditions_met' */
7927 L4_MABX_B.F_Shift_interlock_conditions_me =
7928 L4_MABX_P.F_Shift_interlock_conditions_me;
7929 L4_MABX_DW.Determine_shift_interlock_brake = false;
7930 }
7931
7932 /* End of Outputs for SubSystem: '<S107>/Determine_shift_interlock_brake_pressure_target' */
7933
7934 /* RelationalOperator: '<S208>/Compare' incorporates:
7935 * Constant: '<S208>/Constant'
7936 */
7937 L4_MABX_B.Compare_g4 = (L4_MABX_B.VSPD_TARGET_KPH_APV_g ==
7938 L4_MABX_P.Constant_Value_ol);
7939
7940 /* RelationalOperator: '<S111>/Relational Operator4' */
7941 L4_MABX_B.RelationalOperator4_l = (L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b >=
7942 L4_MABX_B.DataTypeConversion5_o);
7943
7944 /* Logic: '<S111>/Logical Operator3' */
7945 L4_MABX_B.F_Hold_brakes_at_zero_d = (L4_MABX_B.F_Brake_control_active &&
7946 L4_MABX_B.Compare_g4 && L4_MABX_B.RelationalOperator4_l);
7947
7948 /* Outputs for Enabled SubSystem: '<S107>/Determine_brake_hold_pressure_target' incorporates:
7949 * EnablePort: '<S185>/Enable'
7950 */
7951 if (L4_MABX_B.F_Hold_brakes_at_zero_d) {
7952 if (!L4_MABX_DW.Determine_brake_hold_pressure_t) {
7953 /* InitializeConditions for UnitDelay: '<S185>/Unit_Delay' */
7954 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_P.Unit_Delay_InitialCondition_d;
7955
7956 /* InitializeConditions for UnitDelay: '<S189>/Unit_Delay' */
7957 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Unit_Delay_InitialCondition_fy;
7958
7959 /* InitializeConditions for UnitDelay: '<S193>/FixPt Unit Delay2' */
7960 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je =
7961 L4_MABX_P.FixPtUnitDelay2_InitialCondit_e;
7962
7963 /* InitializeConditions for UnitDelay: '<S193>/FixPt Unit Delay1' */
7964 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b =
7965 L4_MABX_P.FixPtUnitDelay1_InitialCondit_p;
7966
7967 /* InitializeConditions for UnitDelay: '<S190>/Unit_Delay' */
7968 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_P.Unit_Delay_InitialCondition_k;
7969 L4_MABX_DW.Determine_brake_hold_pressure_t = true;
7970 }
7971
7972 /* Logic: '<S185>/Logical Operator2' */
7973 L4_MABX_B.F_Brake_hold_conditions_met = (L4_MABX_B.If_Then_Else_l.Switch &&
7974 L4_MABX_B.F_Vehicle_stopped);
7975
7976 /* UnitDelay: '<S185>/Unit_Delay' */
7977 L4_MABX_B.Unit_Delay_a = L4_MABX_DW.Unit_Delay_DSTATE_c;
7978
7979 /* UnitDelay: '<S189>/Unit_Delay' */
7980 L4_MABX_B.Unit_Delay_h0 = L4_MABX_DW.Unit_Delay_DSTATE_or;
7981
7982 /* Logic: '<S189>/Logical Operator1' incorporates:
7983 * Constant: '<S185>/CPV1'
7984 */
7985 L4_MABX_B.LogicalOperator1_ou = (L4_MABX_P.CPV1_Value_p ||
7986 L4_MABX_B.Unit_Delay_h0);
7987
7988 /* Outputs for Atomic SubSystem: '<S185>/If_Then_Else1' */
7989
7990 /* Constant: '<S185>/CPV' */
7991 L4_MABX_If_Then_Else_g(L4_MABX_B.F_Brake_hold_conditions_met,
7992 L4_MABX_B.Unit_Delay_a, L4_MABX_P.CPV_Value_k, &L4_MABX_B.If_Then_Else1_mf);
7993
7994 /* End of Outputs for SubSystem: '<S185>/If_Then_Else1' */
7995
7996 /* UnitDelay: '<S193>/FixPt Unit Delay2' */
7997 L4_MABX_B.FixPtUnitDelay2_do = L4_MABX_DW.FixPtUnitDelay2_DSTATE_je;
7998
7999 /* UnitDelay: '<S193>/FixPt Unit Delay1' */
8000 L4_MABX_B.Xold_bf = L4_MABX_DW.FixPtUnitDelay1_DSTATE_b;
8001
8002 /* Switch: '<S193>/Init' */
8003 if (L4_MABX_B.FixPtUnitDelay2_do != 0) {
8004 L4_MABX_B.Init_k = L4_MABX_B.If_Then_Else1_mf.Switch;
8005 } else {
8006 L4_MABX_B.Init_k = L4_MABX_B.Xold_bf;
8007 }
8008
8009 /* End of Switch: '<S193>/Init' */
8010
8011 /* Abs: '<S189>/Abs' incorporates:
8012 * Constant: '<S185>/BRAKE_PRESS_TARGET_S LEW_INC_APV'
8013 */
8014 L4_MABX_B.Abs_b = fabs(L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_INC_APV);
8015
8016 /* DigitalClock: '<S190>/Digital Clock' */
8017 L4_MABX_B.DigitalClock_c = L4_MABX_M->Timing.t[0];
8018
8019 /* UnitDelay: '<S190>/Unit_Delay' */
8020 L4_MABX_B.Unit_Delay_ka = L4_MABX_DW.Unit_Delay_DSTATE_oj;
8021
8022 /* Sum: '<S190>/Subtract' */
8023 L4_MABX_B.Subtract_ko = L4_MABX_B.DigitalClock_c - L4_MABX_B.Unit_Delay_ka;
8024
8025 /* Product: '<S189>/Product1' */
8026 L4_MABX_B.Product1_f = L4_MABX_B.Abs_b * L4_MABX_B.Subtract_ko;
8027
8028 /* Sum: '<S189>/Add1' */
8029 L4_MABX_B.Add1_c = L4_MABX_B.Init_k + L4_MABX_B.Product1_f;
8030
8031 /* MinMax: '<S189>/MinMax2' */
8032 DeltaTime = L4_MABX_B.If_Then_Else1_mf.Switch;
8033 PositionFinalLimited = L4_MABX_B.Add1_c;
8034 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8035 PositionFinalLimited = DeltaTime;
8036 }
8037
8038 L4_MABX_B.MinMax2_c2 = PositionFinalLimited;
8039
8040 /* End of MinMax: '<S189>/MinMax2' */
8041
8042 /* Abs: '<S189>/Abs1' incorporates:
8043 * Constant: '<S185>/BRAKE_PRESS_TARGET_SLEW_DEC_APV'
8044 */
8045 L4_MABX_B.Abs1_ar = fabs(L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_DEC_APV);
8046
8047 /* Product: '<S189>/Product2' */
8048 L4_MABX_B.Product2_c3 = L4_MABX_B.Subtract_ko * L4_MABX_B.Abs1_ar;
8049
8050 /* Sum: '<S189>/Subtract1' */
8051 L4_MABX_B.Subtract1_ev = L4_MABX_B.Init_k - L4_MABX_B.Product2_c3;
8052
8053 /* MinMax: '<S189>/MinMax1' */
8054 DeltaTime = L4_MABX_B.MinMax2_c2;
8055 PositionFinalLimited = L4_MABX_B.Subtract1_ev;
8056 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8057 PositionFinalLimited = DeltaTime;
8058 }
8059
8060 L4_MABX_B.MinMax1_jw = PositionFinalLimited;
8061
8062 /* End of MinMax: '<S189>/MinMax1' */
8063
8064 /* Outputs for Atomic SubSystem: '<S189>/If_Then_Else' */
8065 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_ou, L4_MABX_B.Gain_go,
8066 L4_MABX_B.MinMax1_jw, &L4_MABX_B.If_Then_Else_nz);
8067
8068 /* End of Outputs for SubSystem: '<S189>/If_Then_Else' */
8069
8070 /* Outputs for Atomic SubSystem: '<S185>/If_Then_Else' */
8071 L4_MABX_If_Then_Else_g(L4_MABX_B.F_Brake_hold_conditions_met,
8072 L4_MABX_B.Unit_Delay_a, L4_MABX_B.If_Then_Else_nz.Switch,
8073 &L4_MABX_B.If_Then_Else_gj);
8074
8075 /* End of Outputs for SubSystem: '<S185>/If_Then_Else' */
8076
8077 /* RelationalOperator: '<S191>/min_relop' incorporates:
8078 * Constant: '<S185>/BRAKE_PRESS_TARGET_S LEW_INC_APV'
8079 * Constant: '<S191>/min_val'
8080 */
8081 L4_MABX_B.min_relop_im = (L4_MABX_P.CheckStaticLowerBound_min_i <=
8082 L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_INC_APV);
8083
8084 /* Assertion: '<S191>/Assertion' */
8085 utAssert(L4_MABX_B.min_relop_im);
8086 } else {
8087 if (L4_MABX_DW.Determine_brake_hold_pressure_t) {
8088 /* Disable for Outport: '<S185>/Brake_hold_brake_press_target_kpa' */
8089 L4_MABX_B.If_Then_Else_gj.Switch =
8090 L4_MABX_P.Brake_hold_brake_press_target_k;
8091
8092 /* Disable for Outport: '<S185>/F_Brake_hold_conditions_met' */
8093 L4_MABX_B.F_Brake_hold_conditions_met =
8094 L4_MABX_P.F_Brake_hold_conditions_met_Y0;
8095 L4_MABX_DW.Determine_brake_hold_pressure_t = false;
8096 }
8097 }
8098
8099 /* End of Outputs for SubSystem: '<S107>/Determine_brake_hold_pressure_target' */
8100
8101 /* MinMax: '<S107>/MinMax' */
8102 DeltaTime = L4_MABX_B.If_Then_Else_il.Switch;
8103 PositionFinalLimited = L4_MABX_B.If_Then_Else_gj.Switch;
8104 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8105 PositionFinalLimited = DeltaTime;
8106 }
8107
8108 L4_MABX_B.Brake_pressure_target_kpa = PositionFinalLimited;
8109
8110 /* End of MinMax: '<S107>/MinMax' */
8111
8112 /* Gain: '<S106>/Gain1' */
8113 L4_MABX_B.Bendix_2C2_Primary_brake_circui = L4_MABX_P.Gain1_Gain *
8114 L4_MABX_B.PressureP21;
8115
8116 /* Gain: '<S106>/Gain2' */
8117 L4_MABX_B.Bendix_2C2_Secondary_brake_circ = L4_MABX_P.Gain2_Gain *
8118 L4_MABX_B.PressureP22;
8119
8120 /* Sum: '<S108>/Add' */
8121 L4_MABX_B.Add_n = L4_MABX_B.Primary_brake_circuit_pressure_ +
8122 L4_MABX_B.Secondary_brake_circuit_pressur;
8123
8124 /* Gain: '<S108>/Gain' */
8125 L4_MABX_B.brake_system_avg_appl_pressure_ = L4_MABX_P.Gain_Gain_i *
8126 L4_MABX_B.Add_n;
8127
8128 /* Gain: '<S106>/Gain3' */
8129 L4_MABX_B.Primary_brake_circuit_pressur_n = L4_MABX_P.Gain3_Gain *
8130 L4_MABX_B.PressureP1;
8131
8132 /* Product: '<S108>/Divide2' */
8133 L4_MABX_B.Divide2 = L4_MABX_B.brake_system_avg_appl_pressure_ /
8134 L4_MABX_B.Primary_brake_circuit_pressur_n;
8135
8136 /* Gain: '<S108>/Gain5' */
8137 L4_MABX_B.Gain5 = L4_MABX_P.Gain5_Gain_l * L4_MABX_B.Divide2;
8138
8139 /* Saturate: '<S108>/Saturation3' */
8140 DeltaTime = L4_MABX_B.Gain5;
8141 Time56 = L4_MABX_P.Saturation3_LowerSat;
8142 PositionFinalLimited = L4_MABX_P.Saturation3_UpperSat;
8143 if (DeltaTime > PositionFinalLimited) {
8144 L4_MABX_B.Brake_appl_percent = PositionFinalLimited;
8145 } else if (DeltaTime < Time56) {
8146 L4_MABX_B.Brake_appl_percent = Time56;
8147 } else {
8148 L4_MABX_B.Brake_appl_percent = DeltaTime;
8149 }
8150
8151 /* End of Saturate: '<S108>/Saturation3' */
8152
8153 /* Outputs for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' incorporates:
8154 * EnablePort: '<S104>/Enable'
8155 */
8156 if (L4_MABX_B.F_Hold_brakes_at_zero_d) {
8157 if (!L4_MABX_DW.Bendix_2C2_brake_application_pr) {
8158 /* InitializeConditions for UnitDelay: '<S113>/Unit_Delay' */
8159 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_P.Unit_Delay_InitialCondition;
8160
8161 /* InitializeConditions for UnitDelay: '<S117>/Unit_Delay' */
8162 L4_MABX_DW.Unit_Delay_DSTATE_omj =
8163 L4_MABX_P.Unit_Delay_InitialCondition_lt;
8164
8165 /* InitializeConditions for UnitDelay: '<S137>/Unit_Delay1' */
8166 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Unit_Delay1_InitialCondition;
8167
8168 /* InitializeConditions for UnitDelay: '<S138>/Unit_Delay' */
8169 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Unit_Delay_InitialCondition_og;
8170
8171 /* InitializeConditions for UnitDelay: '<S142>/FixPt Unit Delay2' */
8172 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm =
8173 L4_MABX_P.FixPtUnitDelay2_InitialConditio;
8174
8175 /* InitializeConditions for UnitDelay: '<S142>/FixPt Unit Delay1' */
8176 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 =
8177 L4_MABX_P.FixPtUnitDelay1_InitialConditio;
8178
8179 /* InitializeConditions for UnitDelay: '<S137>/Unit_Delay2' */
8180 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_P.Unit_Delay2_InitialCondition;
8181
8182 /* InitializeConditions for UnitDelay: '<S112>/Unit_Delay' */
8183 L4_MABX_DW.Unit_Delay_DSTATE_i2 = L4_MABX_P.Unit_Delay_InitialCondition_p;
8184 L4_MABX_DW.Bendix_2C2_brake_application_pr = true;
8185 }
8186
8187 /* Sum: '<S104>/Add' */
8188 L4_MABX_B.Add_my = L4_MABX_B.Bendix_2C2_Primary_brake_circui +
8189 L4_MABX_B.Bendix_2C2_Secondary_brake_circ;
8190
8191 /* Gain: '<S104>/Gain' */
8192 L4_MABX_B.Gain_iv = L4_MABX_P.Gain_Gain * L4_MABX_B.Add_my;
8193
8194 /* Abs: '<S114>/Abs' incorporates:
8195 * Constant: '<S104>/BRK_PRESS_DEM_KI_APV'
8196 */
8197 L4_MABX_B.Abs_k4 = fabs(L4_MABX_P.BRK_PRESS_DEM_KI_APV_Value);
8198
8199 /* Abs: '<S114>/Abs1' incorporates:
8200 * Constant: '<S104>/BRK_PRESS_DEM_KD_APV'
8201 */
8202 L4_MABX_B.Abs1_ap = fabs(L4_MABX_P.BRK_PRESS_DEM_KD_APV_Value);
8203
8204 /* DigitalClock: '<S113>/Digital Clock' */
8205 L4_MABX_B.DigitalClock_j = L4_MABX_M->Timing.t[0];
8206
8207 /* UnitDelay: '<S113>/Unit_Delay' */
8208 L4_MABX_B.Unit_Delay_j = L4_MABX_DW.Unit_Delay_DSTATE_d;
8209
8210 /* Sum: '<S113>/Subtract' */
8211 L4_MABX_B.Subtract_jr = L4_MABX_B.DigitalClock_j - L4_MABX_B.Unit_Delay_j;
8212
8213 /* UnitDelay: '<S117>/Unit_Delay' */
8214 L4_MABX_B.Unit_Delay_nm = L4_MABX_DW.Unit_Delay_DSTATE_omj;
8215
8216 /* Logic: '<S117>/Logical Operator1' incorporates:
8217 * Constant: '<S104>/CPV2'
8218 */
8219 L4_MABX_B.LogicalOperator1_ax = (L4_MABX_B.Unit_Delay_nm ||
8220 L4_MABX_P.CPV2_Value_m);
8221
8222 /* UnitDelay: '<S137>/Unit_Delay1' */
8223 L4_MABX_B.Unit_Delay1_i = L4_MABX_DW.Unit_Delay1_DSTATE_b;
8224
8225 /* Logic: '<S137>/Logical Operator' */
8226 L4_MABX_B.LogicalOperator_mu = (L4_MABX_B.LogicalOperator1_ax ||
8227 L4_MABX_B.Unit_Delay1_i);
8228
8229 /* UnitDelay: '<S138>/Unit_Delay' */
8230 L4_MABX_B.Unit_Delay_nl = L4_MABX_DW.Unit_Delay_DSTATE_h4;
8231
8232 /* Logic: '<S138>/Logical Operator1' */
8233 L4_MABX_B.LogicalOperator1_mk = (L4_MABX_B.LogicalOperator1_ax ||
8234 L4_MABX_B.Unit_Delay_nl);
8235
8236 /* UnitDelay: '<S142>/FixPt Unit Delay2' */
8237 L4_MABX_B.FixPtUnitDelay2_op = L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm;
8238
8239 /* UnitDelay: '<S142>/FixPt Unit Delay1' */
8240 L4_MABX_B.Xold_g3 = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1;
8241
8242 /* Switch: '<S142>/Init' */
8243 if (L4_MABX_B.FixPtUnitDelay2_op != 0) {
8244 L4_MABX_B.Init_hw = L4_MABX_B.Brake_pressure_target_kpa;
8245 } else {
8246 L4_MABX_B.Init_hw = L4_MABX_B.Xold_g3;
8247 }
8248
8249 /* End of Switch: '<S142>/Init' */
8250
8251 /* Abs: '<S138>/Abs' incorporates:
8252 * Constant: '<S104>/CPV4'
8253 */
8254 L4_MABX_B.Abs_l = fabs(L4_MABX_P.CPV4_Value);
8255
8256 /* Product: '<S138>/Product1' */
8257 L4_MABX_B.Product1_b = L4_MABX_B.Abs_l * L4_MABX_B.Subtract_jr;
8258
8259 /* Sum: '<S138>/Add1' */
8260 L4_MABX_B.Add1_hu = L4_MABX_B.Init_hw + L4_MABX_B.Product1_b;
8261
8262 /* MinMax: '<S138>/MinMax2' */
8263 DeltaTime = L4_MABX_B.Brake_pressure_target_kpa;
8264 PositionFinalLimited = L4_MABX_B.Add1_hu;
8265 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8266 PositionFinalLimited = DeltaTime;
8267 }
8268
8269 L4_MABX_B.MinMax2_b = PositionFinalLimited;
8270
8271 /* End of MinMax: '<S138>/MinMax2' */
8272
8273 /* Abs: '<S138>/Abs1' incorporates:
8274 * Constant: '<S104>/CPV5'
8275 */
8276 L4_MABX_B.Abs1_d1 = fabs(L4_MABX_P.CPV5_Value);
8277
8278 /* Product: '<S138>/Product2' */
8279 L4_MABX_B.Product2_d = L4_MABX_B.Subtract_jr * L4_MABX_B.Abs1_d1;
8280
8281 /* Sum: '<S138>/Subtract1' */
8282 L4_MABX_B.Subtract1_a = L4_MABX_B.Init_hw - L4_MABX_B.Product2_d;
8283
8284 /* MinMax: '<S138>/MinMax1' */
8285 DeltaTime = L4_MABX_B.MinMax2_b;
8286 PositionFinalLimited = L4_MABX_B.Subtract1_a;
8287 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8288 PositionFinalLimited = DeltaTime;
8289 }
8290
8291 L4_MABX_B.MinMax1_ps = PositionFinalLimited;
8292
8293 /* End of MinMax: '<S138>/MinMax1' */
8294
8295 /* Outputs for Atomic SubSystem: '<S138>/If_Then_Else' */
8296 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_mk, L4_MABX_B.Gain_iv,
8297 L4_MABX_B.MinMax1_ps, &L4_MABX_B.If_Then_Else_bg);
8298
8299 /* End of Outputs for SubSystem: '<S138>/If_Then_Else' */
8300
8301 /* Sum: '<S115>/Subtract' */
8302 L4_MABX_B.Subtract_n = L4_MABX_B.If_Then_Else_bg.Switch - L4_MABX_B.Gain_iv;
8303
8304 /* MinMax: '<S137>/MinMax1' incorporates:
8305 * Constant: '<S104>/BRK_PRESS_DEM_T_FILT_CTRL_ERROR_APV'
8306 */
8307 DeltaTime = L4_MABX_B.Subtract_jr;
8308 PositionFinalLimited = L4_MABX_P.BRK_PRESS_DEM_T_FILT_CTRL_ERROR;
8309 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8310 PositionFinalLimited = DeltaTime;
8311 }
8312
8313 L4_MABX_B.MinMax1_h1 = PositionFinalLimited;
8314
8315 /* End of MinMax: '<S137>/MinMax1' */
8316
8317 /* Saturate: '<S137>/Saturation' */
8318 DeltaTime = L4_MABX_B.MinMax1_h1;
8319 Time56 = L4_MABX_P.Saturation_LowerSat;
8320 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat;
8321 if (DeltaTime > PositionFinalLimited) {
8322 L4_MABX_B.Saturation_p = PositionFinalLimited;
8323 } else if (DeltaTime < Time56) {
8324 L4_MABX_B.Saturation_p = Time56;
8325 } else {
8326 L4_MABX_B.Saturation_p = DeltaTime;
8327 }
8328
8329 /* End of Saturate: '<S137>/Saturation' */
8330
8331 /* Product: '<S137>/Divide' */
8332 L4_MABX_B.Divide_l = L4_MABX_B.Subtract_jr / L4_MABX_B.Saturation_p;
8333
8334 /* Product: '<S137>/Product2' */
8335 L4_MABX_B.Product2_kj = L4_MABX_B.Subtract_n * L4_MABX_B.Divide_l;
8336
8337 /* Sum: '<S137>/Subtract1' incorporates:
8338 * Constant: '<S137>/Constant1'
8339 */
8340 L4_MABX_B.Subtract1_pm = L4_MABX_P.Constant1_Value_f - L4_MABX_B.Divide_l;
8341
8342 /* UnitDelay: '<S137>/Unit_Delay2' */
8343 L4_MABX_B.Unit_Delay2_d = L4_MABX_DW.Unit_Delay2_DSTATE_dy;
8344
8345 /* Product: '<S137>/Product1' */
8346 L4_MABX_B.Product1_c3 = L4_MABX_B.Subtract1_pm * L4_MABX_B.Unit_Delay2_d;
8347
8348 /* Sum: '<S137>/Add1' */
8349 L4_MABX_B.Add1_i1 = L4_MABX_B.Product2_kj + L4_MABX_B.Product1_c3;
8350
8351 /* Outputs for Atomic SubSystem: '<S137>/If_Then_Else' */
8352 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_mu, L4_MABX_B.Subtract_n,
8353 L4_MABX_B.Add1_i1, &L4_MABX_B.If_Then_Else_ly);
8354
8355 /* End of Outputs for SubSystem: '<S137>/If_Then_Else' */
8356
8357 /* RelationalOperator: '<S122>/Compare' incorporates:
8358 * Constant: '<S122>/Constant'
8359 */
8360 L4_MABX_B.Compare_aa = (L4_MABX_B.Abs1_ap >
8361 L4_MABX_P.CompareToConstant1_const);
8362
8363 /* Outputs for Enabled SubSystem: '<S114>/Calculate_D_term' */
8364
8365 /* Constant: '<S104>/BRK_PRESS_DEM_KD_APV' incorporates:
8366 * Constant: '<S104>/BRK_PRESS_DEM_T_FILT_D_APV'
8367 */
8368 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_aa,
8369 L4_MABX_P.BRK_PRESS_DEM_KD_APV_Value, L4_MABX_B.Subtract_jr,
8370 L4_MABX_B.LogicalOperator1_ax, L4_MABX_B.If_Then_Else_ly.Switch,
8371 L4_MABX_P.BRK_PRESS_DEM_T_FILT_D_APV_Valu, &L4_MABX_B.Calculate_D_term,
8372 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
8373
8374 /* End of Outputs for SubSystem: '<S114>/Calculate_D_term' */
8375
8376 /* Product: '<S120>/Product' incorporates:
8377 * Constant: '<S104>/BRK_PRESS_DEM_KP_APV'
8378 */
8379 L4_MABX_B.Product_iq = L4_MABX_P.BRK_PRESS_DEM_KP_APV_Value *
8380 L4_MABX_B.If_Then_Else_ly.Switch;
8381
8382 /* UnitDelay: '<S112>/Unit_Delay' */
8383 L4_MABX_B.Unit_Delay_ja = L4_MABX_DW.Unit_Delay_DSTATE_i2;
8384
8385 /* RelationalOperator: '<S121>/Compare' incorporates:
8386 * Constant: '<S121>/Constant'
8387 */
8388 L4_MABX_B.Compare_jrp = (L4_MABX_B.Abs_k4 >
8389 L4_MABX_P.CompareToConstant_const);
8390
8391 /* Outputs for Enabled SubSystem: '<S114>/Calculate_I_term' */
8392
8393 /* Constant: '<S104>/BRK_PRESS_DEM_KI_APV' incorporates:
8394 * Constant: '<S104>/BRK_PRESS_DEM_AW_COND_INT_APV'
8395 * Constant: '<S104>/BRK_PRESS_DEM_AW_HYSTERESIS_APV'
8396 * Constant: '<S104>/CPV1'
8397 * Constant: '<S104>/CPV3'
8398 */
8399 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_jrp, L4_MABX_B.Product_iq,
8400 L4_MABX_P.BRK_PRESS_DEM_KI_APV_Value, L4_MABX_B.Brake_appl_percent,
8401 L4_MABX_B.If_Then_Else_ly.Switch, L4_MABX_B.LogicalOperator1_ax,
8402 L4_MABX_B.Subtract_jr, L4_MABX_P.CPV3_Value,
8403 L4_MABX_P.BRK_PRESS_DEM_AW_COND_INT_APV_V,
8404 L4_MABX_P.BRK_PRESS_DEM_AW_HYSTERESIS_APV, L4_MABX_P.CPV1_Value_g,
8405 L4_MABX_B.Unit_Delay_ja, &L4_MABX_B.Calculate_I_term,
8406 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
8407
8408 /* End of Outputs for SubSystem: '<S114>/Calculate_I_term' */
8409
8410 /* RelationalOperator: '<S140>/min_relop' incorporates:
8411 * Constant: '<S104>/CPV4'
8412 * Constant: '<S140>/min_val'
8413 */
8414 L4_MABX_B.min_relop_p = (L4_MABX_P.CheckStaticLowerBound_min <=
8415 L4_MABX_P.CPV4_Value);
8416
8417 /* Assertion: '<S140>/Assertion' */
8418 utAssert(L4_MABX_B.min_relop_p);
8419
8420 /* Sum: '<S116>/Add' incorporates:
8421 * Constant: '<S104>/CPV3'
8422 */
8423 L4_MABX_B.Add_e = ((L4_MABX_B.Product_iq +
8424 L4_MABX_B.Calculate_I_term.If_Then_Else.Switch) +
8425 L4_MABX_B.Calculate_D_term.Subtract) +
8426 L4_MABX_P.CPV3_Value;
8427
8428 /* RelationalOperator: '<S143>/Relational Operator1' incorporates:
8429 * Constant: '<S104>/CPV6'
8430 */
8431 L4_MABX_B.RelationalOperator1_gi = (L4_MABX_B.Add_e >= L4_MABX_P.CPV6_Value);
8432
8433 /* RelationalOperator: '<S143>/Relational Operator' incorporates:
8434 * Constant: '<S104>/CPV'
8435 */
8436 L4_MABX_B.RelationalOperator_b = (L4_MABX_B.Add_e <= L4_MABX_P.CPV_Value);
8437
8438 /* Outputs for Atomic SubSystem: '<S143>/If_Then_Else1' */
8439
8440 /* Constant: '<S104>/CPV' */
8441 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_b, L4_MABX_P.CPV_Value,
8442 L4_MABX_B.Add_e, &L4_MABX_B.If_Then_Else1_b);
8443
8444 /* End of Outputs for SubSystem: '<S143>/If_Then_Else1' */
8445
8446 /* Outputs for Atomic SubSystem: '<S143>/If_Then_Else' */
8447
8448 /* Constant: '<S104>/CPV6' */
8449 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_gi, L4_MABX_P.CPV6_Value,
8450 L4_MABX_B.If_Then_Else1_b.Switch,
8451 &L4_MABX_B.If_Then_Else_nj);
8452
8453 /* End of Outputs for SubSystem: '<S143>/If_Then_Else' */
8454 } else {
8455 if (L4_MABX_DW.Bendix_2C2_brake_application_pr) {
8456 /* Disable for Enabled SubSystem: '<S114>/Calculate_D_term' */
8457 if (L4_MABX_DW.Calculate_D_term.Calculate_D_term_MODE) {
8458 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term,
8459 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
8460 }
8461
8462 /* End of Disable for SubSystem: '<S114>/Calculate_D_term' */
8463
8464 /* Disable for Enabled SubSystem: '<S114>/Calculate_I_term' */
8465 if (L4_MABX_DW.Calculate_I_term.Calculate_I_term_MODE) {
8466 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term,
8467 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
8468 }
8469
8470 /* End of Disable for SubSystem: '<S114>/Calculate_I_term' */
8471
8472 /* Disable for Outport: '<S104>/PID_output' */
8473 L4_MABX_B.If_Then_Else_nj.Switch = L4_MABX_P.PID_output_Y0;
8474 L4_MABX_DW.Bendix_2C2_brake_application_pr = false;
8475 }
8476 }
8477
8478 /* End of Outputs for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
8479
8480 /* RelationalOperator: '<S389>/Compare' incorporates:
8481 * Constant: '<S389>/Constant'
8482 */
8483 L4_MABX_B.Compare_ey = (L4_MABX_B.SFunction1_o4_c ==
8484 L4_MABX_P.CompareToConstant9_const);
8485
8486 /* RelationalOperator: '<S386>/Compare' incorporates:
8487 * Constant: '<S386>/Constant'
8488 */
8489 L4_MABX_B.Compare_jb = (L4_MABX_B.SFunction1_o5_c ==
8490 L4_MABX_P.CompareToConstant10_const);
8491
8492 /* RelationalOperator: '<S387>/Compare' incorporates:
8493 * Constant: '<S387>/Constant'
8494 */
8495 L4_MABX_B.Compare_h = (L4_MABX_B.SFunction1_o6_o ==
8496 L4_MABX_P.CompareToConstant11_const);
8497
8498 /* RelationalOperator: '<S388>/Compare' incorporates:
8499 * Constant: '<S388>/Constant'
8500 */
8501 L4_MABX_B.Compare_bp = (L4_MABX_B.SFunction1_o7_l ==
8502 L4_MABX_P.CompareToConstant12_const);
8503
8504 /* Logic: '<S349>/Logical Operator2' */
8505 L4_MABX_B.LogicalOperator2_f = (L4_MABX_B.Compare_ey || L4_MABX_B.Compare_jb ||
8506 L4_MABX_B.Compare_h || L4_MABX_B.Compare_bp);
8507
8508 /* UnitDelay: '<S391>/Unit_Delay' */
8509 L4_MABX_B.Unit_Delay_ot = L4_MABX_DW.Unit_Delay_DSTATE_cx;
8510
8511 /* Logic: '<S391>/Logical Operator1' */
8512 L4_MABX_B.LogicalOperator1_jo = !L4_MABX_B.Unit_Delay_ot;
8513
8514 /* Logic: '<S391>/Logical Operator' */
8515 L4_MABX_B.LogicalOperator_fl = (L4_MABX_B.LogicalOperator2_f &&
8516 L4_MABX_B.LogicalOperator1_jo);
8517
8518 /* UnitDelay: '<S392>/Unit_Delay' */
8519 L4_MABX_B.Unit_Delay_jz = L4_MABX_DW.Unit_Delay_DSTATE_d0;
8520
8521 /* Logic: '<S392>/Logical Operator1' */
8522 L4_MABX_B.LogicalOperator1_a = (L4_MABX_B.LogicalOperator_fl ||
8523 L4_MABX_B.Unit_Delay_jz);
8524
8525 /* UnitDelay: '<S349>/Unit_Delay' */
8526 L4_MABX_B.Unit_Delay_k4 = L4_MABX_DW.Unit_Delay_DSTATE_e;
8527
8528 /* MinMax: '<S349>/MinMax' */
8529 DeltaTime = L4_MABX_B.Unit_Delay_k4;
8530 PositionFinalLimited = L4_MABX_B.SFunction1_o1_loi;
8531 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8532 PositionFinalLimited = DeltaTime;
8533 }
8534
8535 L4_MABX_B.MinMax_d = PositionFinalLimited;
8536
8537 /* End of MinMax: '<S349>/MinMax' */
8538
8539 /* Outputs for Atomic SubSystem: '<S349>/If_Then_Else4' */
8540
8541 /* Constant: '<S349>/STABILITY_ACTIVE_VSPD_TARGET_APV' incorporates:
8542 * Constant: '<S349>/Constant4'
8543 */
8544 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator2_f,
8545 L4_MABX_P.STABILITY_ACTIVE_VSPD_TARGET_AP,
8546 L4_MABX_P.Constant4_Value_n, &L4_MABX_B.If_Then_Else4_h);
8547
8548 /* End of Outputs for SubSystem: '<S349>/If_Then_Else4' */
8549
8550 /* UnitDelay: '<S396>/FixPt Unit Delay2' */
8551 L4_MABX_B.FixPtUnitDelay2_b = L4_MABX_DW.FixPtUnitDelay2_DSTATE_a;
8552
8553 /* UnitDelay: '<S396>/FixPt Unit Delay1' */
8554 L4_MABX_B.Xold_h = L4_MABX_DW.FixPtUnitDelay1_DSTATE_hj;
8555
8556 /* Switch: '<S396>/Init' */
8557 if (L4_MABX_B.FixPtUnitDelay2_b != 0) {
8558 L4_MABX_B.Init_ip = L4_MABX_B.If_Then_Else4_h.Switch;
8559 } else {
8560 L4_MABX_B.Init_ip = L4_MABX_B.Xold_h;
8561 }
8562
8563 /* End of Switch: '<S396>/Init' */
8564
8565 /* Abs: '<S392>/Abs' incorporates:
8566 * Constant: '<S349>/STABILITY_CTRL_SLEW_INC_APV'
8567 */
8568 L4_MABX_B.Abs_e = fabs(L4_MABX_P.STABILITY_CTRL_SLEW_INC_APV_Val);
8569
8570 /* DigitalClock: '<S393>/Digital Clock' */
8571 L4_MABX_B.DigitalClock = L4_MABX_M->Timing.t[0];
8572
8573 /* UnitDelay: '<S393>/Unit_Delay' */
8574 L4_MABX_B.Unit_Delay_d = L4_MABX_DW.Unit_Delay_DSTATE_m;
8575
8576 /* Sum: '<S393>/Subtract' */
8577 L4_MABX_B.Subtract_l = L4_MABX_B.DigitalClock - L4_MABX_B.Unit_Delay_d;
8578
8579 /* Product: '<S392>/Product1' */
8580 L4_MABX_B.Product1_hp = L4_MABX_B.Abs_e * L4_MABX_B.Subtract_l;
8581
8582 /* Sum: '<S392>/Add1' */
8583 L4_MABX_B.Add1_n = L4_MABX_B.Init_ip + L4_MABX_B.Product1_hp;
8584
8585 /* MinMax: '<S392>/MinMax2' */
8586 DeltaTime = L4_MABX_B.If_Then_Else4_h.Switch;
8587 PositionFinalLimited = L4_MABX_B.Add1_n;
8588 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8589 PositionFinalLimited = DeltaTime;
8590 }
8591
8592 L4_MABX_B.MinMax2_g = PositionFinalLimited;
8593
8594 /* End of MinMax: '<S392>/MinMax2' */
8595
8596 /* Abs: '<S392>/Abs1' incorporates:
8597 * Constant: '<S349>/STABILITY_CTRL_SLEW_DEC_APV'
8598 */
8599 L4_MABX_B.Abs1_h = fabs(L4_MABX_P.STABILITY_CTRL_SLEW_DEC_APV_Val);
8600
8601 /* Product: '<S392>/Product2' */
8602 L4_MABX_B.Product2_c = L4_MABX_B.Subtract_l * L4_MABX_B.Abs1_h;
8603
8604 /* Sum: '<S392>/Subtract1' */
8605 L4_MABX_B.Subtract1_n = L4_MABX_B.Init_ip - L4_MABX_B.Product2_c;
8606
8607 /* MinMax: '<S392>/MinMax1' */
8608 DeltaTime = L4_MABX_B.MinMax2_g;
8609 PositionFinalLimited = L4_MABX_B.Subtract1_n;
8610 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8611 PositionFinalLimited = DeltaTime;
8612 }
8613
8614 L4_MABX_B.MinMax1_h = PositionFinalLimited;
8615
8616 /* End of MinMax: '<S392>/MinMax1' */
8617
8618 /* Outputs for Atomic SubSystem: '<S392>/If_Then_Else' */
8619 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_a, L4_MABX_B.MinMax_d,
8620 L4_MABX_B.MinMax1_h, &L4_MABX_B.If_Then_Else_m4);
8621
8622 /* End of Outputs for SubSystem: '<S392>/If_Then_Else' */
8623
8624 /* RelationalOperator: '<S377>/Compare' incorporates:
8625 * Constant: '<S377>/Constant'
8626 */
8627 L4_MABX_B.Compare_d = (L4_MABX_B.ACCDistanceAlertSignal ==
8628 L4_MABX_P.CompareToConstant3_const);
8629
8630 /* RelationalOperator: '<S378>/Compare' incorporates:
8631 * Constant: '<S378>/Constant'
8632 */
8633 L4_MABX_B.Compare_dv = (L4_MABX_B.ForwardCollisionWarning ==
8634 L4_MABX_P.CompareToConstant8_const);
8635
8636 /* Logic: '<S347>/Logical Operator1' */
8637 L4_MABX_B.LogicalOperator1_g = (L4_MABX_B.Compare_d || L4_MABX_B.Compare_dv);
8638
8639 /* UnitDelay: '<S380>/Unit_Delay' */
8640 L4_MABX_B.Unit_Delay_h = L4_MABX_DW.Unit_Delay_DSTATE_iy;
8641
8642 /* Logic: '<S380>/Logical Operator1' */
8643 L4_MABX_B.LogicalOperator1_jp = !L4_MABX_B.Unit_Delay_h;
8644
8645 /* Logic: '<S380>/Logical Operator' */
8646 L4_MABX_B.LogicalOperator_kf = (L4_MABX_B.LogicalOperator1_g &&
8647 L4_MABX_B.LogicalOperator1_jp);
8648
8649 /* UnitDelay: '<S381>/Unit_Delay' */
8650 L4_MABX_B.Unit_Delay_c = L4_MABX_DW.Unit_Delay_DSTATE_mv;
8651
8652 /* Logic: '<S381>/Logical Operator1' */
8653 L4_MABX_B.LogicalOperator1_l4 = (L4_MABX_B.LogicalOperator_kf ||
8654 L4_MABX_B.Unit_Delay_c);
8655
8656 /* UnitDelay: '<S347>/Unit_Delay' */
8657 L4_MABX_B.Unit_Delay_n = L4_MABX_DW.Unit_Delay_DSTATE_g;
8658
8659 /* MinMax: '<S347>/MinMax' */
8660 DeltaTime = L4_MABX_B.Unit_Delay_n;
8661 PositionFinalLimited = L4_MABX_B.SFunction1_o1_loi;
8662 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8663 PositionFinalLimited = DeltaTime;
8664 }
8665
8666 L4_MABX_B.MinMax_n = PositionFinalLimited;
8667
8668 /* End of MinMax: '<S347>/MinMax' */
8669
8670 /* Outputs for Atomic SubSystem: '<S347>/If_Then_Else4' */
8671
8672 /* Constant: '<S347>/FCW_ACTIVE_VSPD_TARGET_APV' incorporates:
8673 * Constant: '<S347>/Constant4'
8674 */
8675 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_g,
8676 L4_MABX_P.FCW_ACTIVE_VSPD_TARGET_APV_Valu,
8677 L4_MABX_P.Constant4_Value_b, &L4_MABX_B.If_Then_Else4_e);
8678
8679 /* End of Outputs for SubSystem: '<S347>/If_Then_Else4' */
8680
8681 /* UnitDelay: '<S385>/FixPt Unit Delay2' */
8682 L4_MABX_B.FixPtUnitDelay2_pl = L4_MABX_DW.FixPtUnitDelay2_DSTATE_i;
8683
8684 /* UnitDelay: '<S385>/FixPt Unit Delay1' */
8685 L4_MABX_B.Xold_fv = L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq;
8686
8687 /* Switch: '<S385>/Init' */
8688 if (L4_MABX_B.FixPtUnitDelay2_pl != 0) {
8689 L4_MABX_B.Init_b = L4_MABX_B.If_Then_Else4_e.Switch;
8690 } else {
8691 L4_MABX_B.Init_b = L4_MABX_B.Xold_fv;
8692 }
8693
8694 /* End of Switch: '<S385>/Init' */
8695
8696 /* Abs: '<S381>/Abs' incorporates:
8697 * Constant: '<S347>/FCW_CTRL_SLEW_INC_APV'
8698 */
8699 L4_MABX_B.Abs_ez = fabs(L4_MABX_P.FCW_CTRL_SLEW_INC_APV_Value);
8700
8701 /* DigitalClock: '<S382>/Digital Clock' */
8702 L4_MABX_B.DigitalClock_b = L4_MABX_M->Timing.t[0];
8703
8704 /* UnitDelay: '<S382>/Unit_Delay' */
8705 L4_MABX_B.Unit_Delay_nx = L4_MABX_DW.Unit_Delay_DSTATE_b;
8706
8707 /* Sum: '<S382>/Subtract' */
8708 L4_MABX_B.Subtract_i = L4_MABX_B.DigitalClock_b - L4_MABX_B.Unit_Delay_nx;
8709
8710 /* Product: '<S381>/Product1' */
8711 L4_MABX_B.Product1_i = L4_MABX_B.Abs_ez * L4_MABX_B.Subtract_i;
8712
8713 /* Sum: '<S381>/Add1' */
8714 L4_MABX_B.Add1_b = L4_MABX_B.Init_b + L4_MABX_B.Product1_i;
8715
8716 /* MinMax: '<S381>/MinMax2' */
8717 DeltaTime = L4_MABX_B.If_Then_Else4_e.Switch;
8718 PositionFinalLimited = L4_MABX_B.Add1_b;
8719 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8720 PositionFinalLimited = DeltaTime;
8721 }
8722
8723 L4_MABX_B.MinMax2_k = PositionFinalLimited;
8724
8725 /* End of MinMax: '<S381>/MinMax2' */
8726
8727 /* Abs: '<S381>/Abs1' incorporates:
8728 * Constant: '<S347>/FCW_CTRL_SLEW_DEC_APV'
8729 */
8730 L4_MABX_B.Abs1_c = fabs(L4_MABX_P.FCW_CTRL_SLEW_DEC_APV_Value);
8731
8732 /* Product: '<S381>/Product2' */
8733 L4_MABX_B.Product2_n = L4_MABX_B.Subtract_i * L4_MABX_B.Abs1_c;
8734
8735 /* Sum: '<S381>/Subtract1' */
8736 L4_MABX_B.Subtract1_h = L4_MABX_B.Init_b - L4_MABX_B.Product2_n;
8737
8738 /* MinMax: '<S381>/MinMax1' */
8739 DeltaTime = L4_MABX_B.MinMax2_k;
8740 PositionFinalLimited = L4_MABX_B.Subtract1_h;
8741 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8742 PositionFinalLimited = DeltaTime;
8743 }
8744
8745 L4_MABX_B.MinMax1_j = PositionFinalLimited;
8746
8747 /* End of MinMax: '<S381>/MinMax1' */
8748
8749 /* Outputs for Atomic SubSystem: '<S381>/If_Then_Else' */
8750 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_l4, L4_MABX_B.MinMax_n,
8751 L4_MABX_B.MinMax1_j, &L4_MABX_B.If_Then_Else_bf);
8752
8753 /* End of Outputs for SubSystem: '<S381>/If_Then_Else' */
8754
8755 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
8756 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
8757 L4_MABX_B.pathSpdLimit_a = L4_MABX_DW.TmpRTBAtSignalConversion3Inport;
8758 }
8759
8760 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8761 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8762 */
8763 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8764 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8765 /* SignalConversion: '<S81>/Signal Conversion3' */
8766 L4_MABX_B.Vehicle_speed_abs_max_e = L4_MABX_B.pathSpdLimit_a;
8767 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_e;
8768 break;
8769
8770 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8771 /* SignalConversion: '<S81>/Signal Conversion8' incorporates:
8772 * Constant: '<S81>/VSPD_ABS_MAX_APV'
8773 */
8774 L4_MABX_B.Vehicle_speed_abs_max_j = L4_MABX_P.VSPD_ABS_MAX_APV_Value;
8775 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_j;
8776 break;
8777
8778 default:
8779 /* SignalConversion: '<S81>/Signal Conversion15' incorporates:
8780 * Constant: '<S81>/CPV1'
8781 */
8782 L4_MABX_B.Vehicle_speed_abs_max_g = L4_MABX_P.CPV1_Value;
8783 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_g;
8784 break;
8785 }
8786
8787 /* RelationalOperator: '<S343>/Compare' incorporates:
8788 * Constant: '<S343>/Constant'
8789 */
8790 L4_MABX_B.Compare_jr = (L4_MABX_B.SFunction1_o7_l3 ==
8791 L4_MABX_P.Constant_Value_a);
8792
8793 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
8794 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
8795 L4_MABX_B.distance_o = L4_MABX_DW.TmpRTBAtSignalConversion2Inport;
8796 }
8797
8798 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8799 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8800 */
8801 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8802 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8803 /* SignalConversion: '<S81>/Signal Conversion2' */
8804 L4_MABX_B.Distance_to_achieve_speed_tar_f = L4_MABX_B.distance_o;
8805 L4_MABX_B.Distance_to_achieve_speed_targe =
8806 L4_MABX_B.Distance_to_achieve_speed_tar_f;
8807 break;
8808
8809 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8810 /* SignalConversion: '<S81>/Signal Conversion7' incorporates:
8811 * Constant: '<S81>/DISTANCE_M'
8812 */
8813 L4_MABX_B.Distance_to_achieve_speed_tar_j = DISTANCE_M;
8814 L4_MABX_B.Distance_to_achieve_speed_targe =
8815 L4_MABX_B.Distance_to_achieve_speed_tar_j;
8816 break;
8817
8818 default:
8819 /* SignalConversion: '<S81>/Signal Conversion14' incorporates:
8820 * Constant: '<S81>/CPV'
8821 */
8822 L4_MABX_B.Distance_to_achieve_speed_tar_m = L4_MABX_P.CPV_Value_ia;
8823 L4_MABX_B.Distance_to_achieve_speed_targe =
8824 L4_MABX_B.Distance_to_achieve_speed_tar_m;
8825 break;
8826 }
8827
8828 /* UnitDelay: '<S344>/Delay Input1' */
8829 L4_MABX_B.Uk1[0] = L4_MABX_DW.DelayInput1_DSTATE[0];
8830 L4_MABX_B.Uk1[1] = L4_MABX_DW.DelayInput1_DSTATE[1];
8831
8832 /* RelationalOperator: '<S344>/FixPt Relational Operator' */
8833 L4_MABX_B.FixPtRelationalOperator_dk[0] =
8834 (L4_MABX_B.Distance_to_achieve_speed_targe != L4_MABX_B.Uk1[0]);
8835 L4_MABX_B.FixPtRelationalOperator_dk[1] = (L4_MABX_B.Vehicle_speed_target_o !=
8836 L4_MABX_B.Uk1[1]);
8837
8838 /* Logic: '<S81>/Logical Operator1' */
8839 L4_MABX_B.LogicalOperator1_ja = (L4_MABX_B.FixPtRelationalOperator_dk[0] ||
8840 L4_MABX_B.FixPtRelationalOperator_dk[1]);
8841
8842 /* Saturate: '<S346>/Saturation5' */
8843 DeltaTime = L4_MABX_B.SFunction1_o1_loi;
8844 Time56 = L4_MABX_P.Saturation5_LowerSat;
8845 PositionFinalLimited = L4_MABX_P.Saturation5_UpperSat;
8846 if (DeltaTime > PositionFinalLimited) {
8847 L4_MABX_B.Saturation5 = PositionFinalLimited;
8848 } else if (DeltaTime < Time56) {
8849 L4_MABX_B.Saturation5 = Time56;
8850 } else {
8851 L4_MABX_B.Saturation5 = DeltaTime;
8852 }
8853
8854 /* End of Saturate: '<S346>/Saturation5' */
8855
8856 /* MinMax: '<S346>/MinMax6' incorporates:
8857 * Constant: '<S346>/MIN_VSPD_SIGMOID_INITIAL_KPH_APV'
8858 */
8859 DeltaTime = L4_MABX_B.Saturation5;
8860 PositionFinalLimited = L4_MABX_P.MIN_VSPD_SIGMOID_INITIAL_KPH_AP;
8861 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8862 PositionFinalLimited = DeltaTime;
8863 }
8864
8865 L4_MABX_B.MinMax6 = PositionFinalLimited;
8866
8867 /* End of MinMax: '<S346>/MinMax6' */
8868
8869 /* Gain: '<S346>/Gain1' */
8870 L4_MABX_B.Gain1_e = L4_MABX_P.Gain1_Gain_a * L4_MABX_B.MinMax6;
8871
8872 /* Saturate: '<S346>/Saturation4' */
8873 DeltaTime = L4_MABX_B.Vehicle_speed_target_o;
8874 Time56 = L4_MABX_P.Saturation4_LowerSat;
8875 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat;
8876 if (DeltaTime > PositionFinalLimited) {
8877 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = PositionFinalLimited;
8878 } else if (DeltaTime < Time56) {
8879 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = Time56;
8880 } else {
8881 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = DeltaTime;
8882 }
8883
8884 /* End of Saturate: '<S346>/Saturation4' */
8885
8886 /* MinMax: '<S346>/MinMax1' incorporates:
8887 * Constant: '<S346>/MIN_VSPD_SIGMOID_FINAL_KPH_APV'
8888 */
8889 DeltaTime = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
8890 PositionFinalLimited = L4_MABX_P.MIN_VSPD_SIGMOID_FINAL_KPH_APV_;
8891 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8892 PositionFinalLimited = DeltaTime;
8893 }
8894
8895 L4_MABX_B.MinMax1_f = PositionFinalLimited;
8896
8897 /* End of MinMax: '<S346>/MinMax1' */
8898
8899 /* Gain: '<S346>/Gain2' */
8900 L4_MABX_B.Gain2 = L4_MABX_P.Gain2_Gain_k * L4_MABX_B.MinMax1_f;
8901
8902 /* Saturate: '<S346>/Saturation6' */
8903 DeltaTime = SPN1810_LongitudinalAcceleration;
8904 Time56 = L4_MABX_P.Saturation6_LowerSat;
8905 PositionFinalLimited = L4_MABX_P.Saturation6_UpperSat;
8906 if (DeltaTime > PositionFinalLimited) {
8907 L4_MABX_B.Saturation6 = PositionFinalLimited;
8908 } else if (DeltaTime < Time56) {
8909 L4_MABX_B.Saturation6 = Time56;
8910 } else {
8911 L4_MABX_B.Saturation6 = DeltaTime;
8912 }
8913
8914 /* End of Saturate: '<S346>/Saturation6' */
8915
8916 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8917 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8918 */
8919 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8920 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8921 /* SignalConversion: '<S81>/Signal Conversion10' incorporates:
8922 * Constant: '<S81>/CPV3'
8923 */
8924 L4_MABX_B.Acceleration_target_ms2_d = L4_MABX_P.CPV3_Value_l;
8925 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_d;
8926 break;
8927
8928 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8929 /* SignalConversion: '<S81>/Signal Conversion5' incorporates:
8930 * Constant: '<S81>/VEH_ACCEL_TARGET_APV'
8931 */
8932 L4_MABX_B.Acceleration_target_ms2_h = L4_MABX_P.VEH_ACCEL_TARGET_APV_Value;
8933 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_h;
8934 break;
8935
8936 default:
8937 /* SignalConversion: '<S81>/Signal Conversion11' incorporates:
8938 * Constant: '<S81>/CPV2'
8939 */
8940 L4_MABX_B.Acceleration_target_ms2_f = L4_MABX_P.CPV2_Value;
8941 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_f;
8942 break;
8943 }
8944
8945 /* Saturate: '<S346>/Saturation7' */
8946 DeltaTime = L4_MABX_B.Acceleration_target_ms2;
8947 Time56 = L4_MABX_P.Saturation7_LowerSat;
8948 PositionFinalLimited = L4_MABX_P.Saturation7_UpperSat;
8949 if (DeltaTime > PositionFinalLimited) {
8950 L4_MABX_B.Saturation7 = PositionFinalLimited;
8951 } else if (DeltaTime < Time56) {
8952 L4_MABX_B.Saturation7 = Time56;
8953 } else {
8954 L4_MABX_B.Saturation7 = DeltaTime;
8955 }
8956
8957 /* End of Saturate: '<S346>/Saturation7' */
8958
8959 /* Saturate: '<S346>/Saturation1' incorporates:
8960 * Constant: '<S81>/VEH_JERK_INITIAL_APV'
8961 */
8962 DeltaTime = L4_MABX_P.VEH_JERK_INITIAL_APV_Value;
8963 Time56 = L4_MABX_P.Saturation1_LowerSat_b;
8964 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_o;
8965 if (DeltaTime > PositionFinalLimited) {
8966 L4_MABX_B.Saturation1 = PositionFinalLimited;
8967 } else if (DeltaTime < Time56) {
8968 L4_MABX_B.Saturation1 = Time56;
8969 } else {
8970 L4_MABX_B.Saturation1 = DeltaTime;
8971 }
8972
8973 /* End of Saturate: '<S346>/Saturation1' */
8974
8975 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8976 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8977 */
8978 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8979 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8980 /* SignalConversion: '<S81>/Signal Conversion13' incorporates:
8981 * Constant: '<S81>/CPV4'
8982 */
8983 L4_MABX_B.Jerk_target_ms3_g = L4_MABX_P.CPV4_Value_k;
8984 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_g;
8985 break;
8986
8987 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8988 /* SignalConversion: '<S81>/Signal Conversion6' incorporates:
8989 * Constant: '<S81>/VEH_JERK_TARGET_APV'
8990 */
8991 L4_MABX_B.Jerk_target_ms3_d = L4_MABX_P.VEH_JERK_TARGET_APV_Value;
8992 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_d;
8993 break;
8994
8995 default:
8996 /* SignalConversion: '<S81>/Signal Conversion12' incorporates:
8997 * Constant: '<S81>/CPV5'
8998 */
8999 L4_MABX_B.Jerk_target_ms3_l = L4_MABX_P.CPV5_Value_n;
9000 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_l;
9001 break;
9002 }
9003
9004 /* Saturate: '<S346>/Saturation2' */
9005 DeltaTime = L4_MABX_B.Jerk_target_ms3;
9006 Time56 = L4_MABX_P.Saturation2_LowerSat;
9007 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat;
9008 if (DeltaTime > PositionFinalLimited) {
9009 L4_MABX_B.Saturation2 = PositionFinalLimited;
9010 } else if (DeltaTime < Time56) {
9011 L4_MABX_B.Saturation2 = Time56;
9012 } else {
9013 L4_MABX_B.Saturation2 = DeltaTime;
9014 }
9015
9016 /* End of Saturate: '<S346>/Saturation2' */
9017
9018 /* Chart: '<S346>/VehicleSpeedSetpointDynamicCalculation' */
9019 /* Gateway: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
9020 /* During: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
9021 /* Entry Internal: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
9022 /* Transition: '<S361>:88' */
9023 if (L4_MABX_B.LogicalOperator1_ja) {
9024 /* Transition: '<S361>:89' */
9025 /* Transition: '<S361>:39' */
9026 PositionFinalLimited = L4_MABX_B.Distance_to_achieve_speed_targe;
9027 if ((0.001 > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9028 PositionFinalLimited = 0.001;
9029 }
9030
9031 Time56 = L4_MABX_B.Gain1_e;
9032 if ((0.1 > Time56) || rtIsNaN(Time56)) {
9033 L4_MABX_DW.VelocityInitialLimited = 0.1;
9034 } else {
9035 L4_MABX_DW.VelocityInitialLimited = Time56;
9036 }
9037
9038 Time56 = L4_MABX_B.Gain2;
9039 if ((0.1 > Time56) || rtIsNaN(Time56)) {
9040 L4_MABX_DW.VelocityFinalLimited = 0.1;
9041 } else {
9042 L4_MABX_DW.VelocityFinalLimited = Time56;
9043 }
9044
9045 L4_MABX_DW.TimeFinal = 2.0 * PositionFinalLimited /
9046 (L4_MABX_DW.VelocityInitialLimited + L4_MABX_DW.VelocityFinalLimited);
9047 Time56 = L4_MABX_DW.TimeFinal;
9048 if ((0.007 > Time56) || rtIsNaN(Time56)) {
9049 L4_MABX_DW.TimeFinal = 0.007;
9050 } else {
9051 L4_MABX_DW.TimeFinal = Time56;
9052 }
9053
9054 AccelerationAverage = (L4_MABX_DW.VelocityFinalLimited -
9055 L4_MABX_DW.VelocityInitialLimited) / L4_MABX_DW.TimeFinal;
9056 L4_MABX_DW.TimeFinal *= 2.0;
9057 if (L4_MABX_DW.VelocityFinalLimited > L4_MABX_DW.VelocityInitialLimited) {
9058 /* Transition: '<S361>:238' */
9059 /* Transition: '<S361>:240' */
9060 Time56 = L4_MABX_B.Saturation6;
9061 if ((AccelerationAverage < Time56) || rtIsNaN(Time56)) {
9062 Time56 = AccelerationAverage;
9063 }
9064
9065 if ((0.0 > Time56) || rtIsNaN(Time56)) {
9066 L4_MABX_DW.AccelerationInitialLimited = 0.0;
9067 } else {
9068 L4_MABX_DW.AccelerationInitialLimited = Time56;
9069 }
9070
9071 Time56 = L4_MABX_B.Saturation7;
9072 if ((AccelerationAverage < Time56) || rtIsNaN(Time56)) {
9073 Time56 = AccelerationAverage;
9074 }
9075
9076 if ((0.0 > Time56) || rtIsNaN(Time56)) {
9077 L4_MABX_DW.AccelerationFinalLimited = 0.0;
9078 } else {
9079 L4_MABX_DW.AccelerationFinalLimited = Time56;
9080 }
9081
9082 /* Transition: '<S361>:243' */
9083 } else {
9084 /* Transition: '<S361>:241' */
9085 Time56 = L4_MABX_B.Saturation6;
9086 if ((0.0 < Time56) || rtIsNaN(Time56)) {
9087 Time56 = 0.0;
9088 }
9089
9090 if ((AccelerationAverage > Time56) || rtIsNaN(Time56)) {
9091 L4_MABX_DW.AccelerationInitialLimited = AccelerationAverage;
9092 } else {
9093 L4_MABX_DW.AccelerationInitialLimited = Time56;
9094 }
9095
9096 Time56 = L4_MABX_B.Saturation7;
9097 if ((0.0 < Time56) || rtIsNaN(Time56)) {
9098 Time56 = 0.0;
9099 }
9100
9101 if ((AccelerationAverage > Time56) || rtIsNaN(Time56)) {
9102 L4_MABX_DW.AccelerationFinalLimited = AccelerationAverage;
9103 } else {
9104 L4_MABX_DW.AccelerationFinalLimited = Time56;
9105 }
9106 }
9107
9108 /* Transition: '<S361>:16' */
9109 DeltaTimeFinal = L4_MABX_DW.TimeFinal;
9110 for (starting_index = 1U; starting_index < 16; starting_index++) {
9111 /* Transition: '<S361>:14' */
9112 /* Transition: '<S361>:201' */
9113 DeltaTime = ((L4_MABX_DW.VelocityInitialLimited -
9114 L4_MABX_DW.VelocityFinalLimited) +
9115 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.TimeFinal) *
9116 2.0 / (L4_MABX_DW.TimeFinal * L4_MABX_DW.TimeFinal);
9117 if (L4_MABX_DW.VelocityFinalLimited > L4_MABX_DW.VelocityInitialLimited) {
9118 /* Transition: '<S361>:121' */
9119 /* Transition: '<S361>:116' */
9120 L4_MABX_DW.Jerk12 = L4_MABX_B.Saturation1;
9121 DeltaTime = fabs(DeltaTime);
9122 Time56 = L4_MABX_B.Saturation2;
9123 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9124 Time56 = DeltaTime;
9125 }
9126
9127 L4_MABX_DW.Jerk56 = -Time56;
9128
9129 /* Transition: '<S361>:120' */
9130 } else {
9131 /* Transition: '<S361>:122' */
9132 L4_MABX_DW.Jerk12 = -L4_MABX_B.Saturation1;
9133 DeltaTime = fabs(DeltaTime);
9134 Time56 = L4_MABX_B.Saturation2;
9135 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9136 L4_MABX_DW.Jerk56 = DeltaTime;
9137 } else {
9138 L4_MABX_DW.Jerk56 = Time56;
9139 }
9140 }
9141
9142 /* Transition: '<S361>:275' */
9143 L4_MABX_CalculateAcceleration34();
9144 if (fabs(L4_MABX_DW.Acceleration34 - AccelerationAverage) < 0.001) {
9145 /* Transition: '<S361>:141' */
9146 /* Transition: '<S361>:145' */
9147 L4_MABX_B.TimeVectorRaw[0] = 0.0;
9148 L4_MABX_B.TimeVectorRaw[1] = 0.001;
9149 L4_MABX_B.TimeVectorRaw[2] = 0.003;
9150 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - 0.002) - 0.001;
9151 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - 0.002) + 0.001;
9152 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
9153 for (i = 0; i < 6; i++) {
9154 L4_MABX_B.JerkVectorRaw[i] = 0.0;
9155 }
9156
9157 L4_MABX_B.AccelerationVectorRaw[0] = AccelerationAverage;
9158
9159 /* Transition: '<S361>:191' */
9160 /* Transition: '<S361>:303' */
9161 } else {
9162 /* Transition: '<S361>:298' */
9163 if (L4_MABX_DW.AlternateMethod) {
9164 /* Transition: '<S361>:300' */
9165 /* Transition: '<S361>:302' */
9166 Time56 = (L4_MABX_DW.AccelerationFinalLimited -
9167 L4_MABX_DW.Acceleration34) / L4_MABX_DW.Jerk56;
9168 if ((0.002 > Time56) || rtIsNaN(Time56)) {
9169 Time56 = 0.002;
9170 }
9171
9172 L4_MABX_B.TimeVectorRaw[0] = 0.0;
9173 L4_MABX_B.TimeVectorRaw[1] = 0.001;
9174 L4_MABX_B.TimeVectorRaw[2] = 0.003;
9175 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - Time56) - 0.001;
9176 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - Time56) + 0.001;
9177 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
9178 L4_MABX_B.JerkVectorRaw[0] = 0.0;
9179 L4_MABX_B.JerkVectorRaw[1] = 0.0;
9180 L4_MABX_B.JerkVectorRaw[2] = 0.0;
9181 L4_MABX_B.JerkVectorRaw[3] = 0.0;
9182 L4_MABX_B.JerkVectorRaw[4] = L4_MABX_DW.Jerk56;
9183 L4_MABX_B.JerkVectorRaw[5] = L4_MABX_DW.Jerk56;
9184 L4_MABX_B.AccelerationVectorRaw[0] = L4_MABX_DW.Acceleration34;
9185
9186 /* Transition: '<S361>:303' */
9187 } else {
9188 /* Transition: '<S361>:157' */
9189 DeltaTime = (L4_MABX_DW.Acceleration34 -
9190 L4_MABX_DW.AccelerationInitialLimited) /
9191 L4_MABX_DW.Jerk12;
9192 if ((0.002 > DeltaTime) || rtIsNaN(DeltaTime)) {
9193 DeltaTime = 0.002;
9194 }
9195
9196 Time56 = (L4_MABX_DW.AccelerationFinalLimited -
9197 L4_MABX_DW.Acceleration34) / L4_MABX_DW.Jerk56;
9198 if ((0.002 > Time56) || rtIsNaN(Time56)) {
9199 Time56 = 0.002;
9200 }
9201
9202 L4_MABX_B.TimeVectorRaw[0] = 0.0;
9203 L4_MABX_B.TimeVectorRaw[1] = DeltaTime - 0.001;
9204 L4_MABX_B.TimeVectorRaw[2] = DeltaTime + 0.001;
9205 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - Time56) - 0.001;
9206 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - Time56) + 0.001;
9207 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
9208 L4_MABX_B.JerkVectorRaw[0] = L4_MABX_DW.Jerk12;
9209 L4_MABX_B.JerkVectorRaw[1] = L4_MABX_DW.Jerk12;
9210 L4_MABX_B.JerkVectorRaw[2] = 0.0;
9211 L4_MABX_B.JerkVectorRaw[3] = 0.0;
9212 L4_MABX_B.JerkVectorRaw[4] = L4_MABX_DW.Jerk56;
9213 L4_MABX_B.JerkVectorRaw[5] = L4_MABX_DW.Jerk56;
9214 L4_MABX_B.AccelerationVectorRaw[0] =
9215 L4_MABX_DW.AccelerationInitialLimited;
9216 }
9217 }
9218
9219 /* Transition: '<S361>:29' */
9220 L4_MABX_B.VelocityVectorRaw[0] = L4_MABX_DW.VelocityInitialLimited;
9221 L4_MABX_B.PositionVectorRaw[0] = 0.0;
9222 for (j = 2U; j < 7; j++) {
9223 /* Transition: '<S361>:34' */
9224 /* Transition: '<S361>:36' */
9225 DeltaTime = L4_MABX_B.TimeVectorRaw[j - 1] - L4_MABX_B.TimeVectorRaw[j -
9226 2];
9227 L4_MABX_B.AccelerationVectorRaw[j - 1] = L4_MABX_B.JerkVectorRaw[j - 2] *
9228 DeltaTime + L4_MABX_B.AccelerationVectorRaw[j - 2];
9229 L4_MABX_B.VelocityVectorRaw[j - 1] = (L4_MABX_B.AccelerationVectorRaw[j
9230 - 2] * DeltaTime + L4_MABX_B.VelocityVectorRaw[j - 2]) +
9231 L4_MABX_B.JerkVectorRaw[j - 2] * 0.5 * (DeltaTime * DeltaTime);
9232 L4_MABX_B.PositionVectorRaw[j - 1] = ((L4_MABX_B.VelocityVectorRaw[j - 2]
9233 * DeltaTime + L4_MABX_B.PositionVectorRaw[j - 2]) +
9234 L4_MABX_B.AccelerationVectorRaw[j - 2] * 0.5 * (DeltaTime * DeltaTime))
9235 + L4_MABX_B.JerkVectorRaw[j - 2] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9236
9237 /* Transition: '<S361>:33' */
9238 }
9239
9240 /* Transition: '<S361>:37' */
9241 DeltaTimeFinal *= 0.5;
9242 if ((L4_MABX_B.PositionVectorRaw[5] - PositionFinalLimited < 0.0) &&
9243 (L4_MABX_B.VelocityVectorRaw[5] > 0.0)) {
9244 /* Transition: '<S361>:61' */
9245 /* Transition: '<S361>:62' */
9246 L4_MABX_DW.TimeFinal += DeltaTimeFinal;
9247
9248 /* Transition: '<S361>:64' */
9249 } else {
9250 /* Transition: '<S361>:63' */
9251 L4_MABX_DW.TimeFinal -= DeltaTimeFinal;
9252 }
9253
9254 /* Transition: '<S361>:60' */
9255 Time56 = L4_MABX_DW.TimeFinal;
9256 if ((0.007 > Time56) || rtIsNaN(Time56)) {
9257 L4_MABX_DW.TimeFinal = 0.007;
9258 } else {
9259 L4_MABX_DW.TimeFinal = Time56;
9260 }
9261
9262 /* Transition: '<S361>:17' */
9263 }
9264
9265 /* Transition: '<S361>:18' */
9266 /* Transition: '<S361>:91' */
9267 } else {
9268 /* Transition: '<S361>:90' */
9269 }
9270
9271 /* End of Chart: '<S346>/VehicleSpeedSetpointDynamicCalculation' */
9272
9273 /* Chart: '<S346>/TwentyPointVectorCalculation' */
9274 if (L4_MABX_B.LogicalOperator1_ja) {
9275 /* Transition: '<S360>:89' */
9276 /* Transition: '<S360>:39' */
9277 L4_MABX_B.TimeVector[0] = L4_MABX_B.TimeVectorRaw[0];
9278 L4_MABX_B.JerkVector[0] = L4_MABX_B.JerkVectorRaw[0];
9279 L4_MABX_B.AccelerationVector[0] = L4_MABX_B.AccelerationVectorRaw[0];
9280 L4_MABX_B.VelocityVector[0] = L4_MABX_B.VelocityVectorRaw[0];
9281 L4_MABX_B.PositionVector[0] = L4_MABX_B.PositionVectorRaw[0];
9282 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[1] -
9283 L4_MABX_B.TimeVectorRaw[0]) / 10.0;
9284 for (starting_index = 2U; starting_index < 11; starting_index++) {
9285 /* Transition: '<S360>:14' */
9286 /* Transition: '<S360>:101' */
9287 L4_MABX_B.TimeVector[starting_index - 1] =
9288 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9289 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9290 L4_MABX_B.TimeVectorRaw[0];
9291 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[0];
9292 L4_MABX_B.AccelerationVector[starting_index - 1] =
9293 L4_MABX_B.JerkVectorRaw[0] * DeltaTime +
9294 L4_MABX_B.AccelerationVectorRaw[0];
9295 L4_MABX_B.VelocityVector[starting_index - 1] =
9296 (L4_MABX_B.AccelerationVectorRaw[0] * DeltaTime +
9297 L4_MABX_B.VelocityVectorRaw[0]) + 0.5 * L4_MABX_B.JerkVectorRaw[0] *
9298 (DeltaTime * DeltaTime);
9299 L4_MABX_B.PositionVector[starting_index - 1] =
9300 ((L4_MABX_B.VelocityVectorRaw[0] * DeltaTime +
9301 L4_MABX_B.PositionVectorRaw[0]) + 0.5 *
9302 L4_MABX_B.AccelerationVectorRaw[0] * (DeltaTime * DeltaTime)) +
9303 L4_MABX_B.JerkVectorRaw[0] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9304 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9305 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9306 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9307 Time56 = DeltaTime;
9308 }
9309
9310 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9311
9312 /* Transition: '<S360>:17' */
9313 }
9314
9315 /* Transition: '<S360>:110' */
9316 L4_MABX_B.TimeVector[10] = L4_MABX_B.TimeVectorRaw[1];
9317 L4_MABX_B.JerkVector[10] = L4_MABX_B.JerkVectorRaw[1];
9318 L4_MABX_B.AccelerationVector[10] = L4_MABX_B.AccelerationVectorRaw[1];
9319 L4_MABX_B.VelocityVector[10] = L4_MABX_B.VelocityVectorRaw[1];
9320 DeltaTime = L4_MABX_B.PositionVector[9] + 0.0001;
9321 Time56 = L4_MABX_B.PositionVectorRaw[1];
9322 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9323 Time56 = DeltaTime;
9324 }
9325
9326 L4_MABX_B.PositionVector[10] = Time56;
9327 L4_MABX_B.TimeVector[11] = L4_MABX_B.TimeVectorRaw[2];
9328 L4_MABX_B.JerkVector[11] = L4_MABX_B.JerkVectorRaw[2];
9329 L4_MABX_B.AccelerationVector[11] = L4_MABX_B.AccelerationVectorRaw[2];
9330 L4_MABX_B.VelocityVector[11] = L4_MABX_B.VelocityVectorRaw[2];
9331 DeltaTime = L4_MABX_B.PositionVector[10] + 0.0001;
9332 Time56 = L4_MABX_B.PositionVectorRaw[2];
9333 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9334 Time56 = DeltaTime;
9335 }
9336
9337 L4_MABX_B.PositionVector[11] = Time56;
9338 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[3] -
9339 L4_MABX_B.TimeVectorRaw[2]) / 10.0;
9340 for (starting_index = 13U; starting_index < 22; starting_index++) {
9341 /* Transition: '<S360>:127' */
9342 /* Transition: '<S360>:133' */
9343 L4_MABX_B.TimeVector[starting_index - 1] =
9344 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9345 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9346 L4_MABX_B.TimeVectorRaw[2];
9347 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[2];
9348 L4_MABX_B.AccelerationVector[starting_index - 1] =
9349 L4_MABX_B.JerkVectorRaw[2] * DeltaTime +
9350 L4_MABX_B.AccelerationVectorRaw[2];
9351 L4_MABX_B.VelocityVector[starting_index - 1] =
9352 (L4_MABX_B.AccelerationVectorRaw[2] * DeltaTime +
9353 L4_MABX_B.VelocityVectorRaw[2]) + 0.5 * L4_MABX_B.JerkVectorRaw[2] *
9354 (DeltaTime * DeltaTime);
9355 L4_MABX_B.PositionVector[starting_index - 1] =
9356 ((L4_MABX_B.VelocityVectorRaw[2] * DeltaTime +
9357 L4_MABX_B.PositionVectorRaw[2]) + 0.5 *
9358 L4_MABX_B.AccelerationVectorRaw[2] * (DeltaTime * DeltaTime)) +
9359 L4_MABX_B.JerkVectorRaw[2] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9360 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9361 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9362 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9363 Time56 = DeltaTime;
9364 }
9365
9366 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9367
9368 /* Transition: '<S360>:131' */
9369 }
9370
9371 /* Transition: '<S360>:132' */
9372 L4_MABX_B.TimeVector[21] = L4_MABX_B.TimeVectorRaw[3];
9373 L4_MABX_B.JerkVector[21] = L4_MABX_B.JerkVectorRaw[3];
9374 L4_MABX_B.AccelerationVector[21] = L4_MABX_B.AccelerationVectorRaw[3];
9375 L4_MABX_B.VelocityVector[21] = L4_MABX_B.VelocityVectorRaw[3];
9376 DeltaTime = L4_MABX_B.PositionVector[20] + 0.0001;
9377 Time56 = L4_MABX_B.PositionVectorRaw[3];
9378 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9379 Time56 = DeltaTime;
9380 }
9381
9382 L4_MABX_B.PositionVector[21] = Time56;
9383 L4_MABX_B.TimeVector[22] = L4_MABX_B.TimeVectorRaw[4];
9384 L4_MABX_B.JerkVector[22] = L4_MABX_B.JerkVectorRaw[4];
9385 L4_MABX_B.AccelerationVector[22] = L4_MABX_B.AccelerationVectorRaw[4];
9386 L4_MABX_B.VelocityVector[22] = L4_MABX_B.VelocityVectorRaw[4];
9387 DeltaTime = L4_MABX_B.PositionVector[21] + 0.0001;
9388 Time56 = L4_MABX_B.PositionVectorRaw[4];
9389 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9390 Time56 = DeltaTime;
9391 }
9392
9393 L4_MABX_B.PositionVector[22] = Time56;
9394 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[5] -
9395 L4_MABX_B.TimeVectorRaw[4]) / 10.0;
9396 for (starting_index = 24U; starting_index < 33; starting_index++) {
9397 /* Transition: '<S360>:111' */
9398 /* Transition: '<S360>:113' */
9399 L4_MABX_B.TimeVector[starting_index - 1] =
9400 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9401 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9402 L4_MABX_B.TimeVectorRaw[4];
9403 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[4];
9404 L4_MABX_B.AccelerationVector[starting_index - 1] =
9405 L4_MABX_B.JerkVectorRaw[4] * DeltaTime +
9406 L4_MABX_B.AccelerationVectorRaw[4];
9407 L4_MABX_B.VelocityVector[starting_index - 1] =
9408 (L4_MABX_B.AccelerationVectorRaw[4] * DeltaTime +
9409 L4_MABX_B.VelocityVectorRaw[4]) + 0.5 * L4_MABX_B.JerkVectorRaw[4] *
9410 (DeltaTime * DeltaTime);
9411 L4_MABX_B.PositionVector[starting_index - 1] =
9412 ((L4_MABX_B.VelocityVectorRaw[4] * DeltaTime +
9413 L4_MABX_B.PositionVectorRaw[4]) + 0.5 *
9414 L4_MABX_B.AccelerationVectorRaw[4] * (DeltaTime * DeltaTime)) +
9415 L4_MABX_B.JerkVectorRaw[4] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9416 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9417 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9418 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9419 Time56 = DeltaTime;
9420 }
9421
9422 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9423
9424 /* Transition: '<S360>:112' */
9425 }
9426
9427 /* Transition: '<S360>:114' */
9428 L4_MABX_B.TimeVector[32] = L4_MABX_B.TimeVectorRaw[5];
9429 L4_MABX_B.JerkVector[32] = L4_MABX_B.JerkVectorRaw[5];
9430 L4_MABX_B.AccelerationVector[32] = L4_MABX_B.AccelerationVectorRaw[5];
9431 L4_MABX_B.VelocityVector[32] = L4_MABX_B.VelocityVectorRaw[5];
9432 DeltaTime = L4_MABX_B.PositionVector[31] + 0.0001;
9433 Time56 = L4_MABX_B.PositionVectorRaw[5];
9434 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9435 Time56 = DeltaTime;
9436 }
9437
9438 L4_MABX_B.PositionVector[32] = Time56;
9439
9440 /* Transition: '<S360>:141' */
9441 } else {
9442 /* Transition: '<S360>:90' */
9443 }
9444
9445 /* End of Chart: '<S346>/TwentyPointVectorCalculation' */
9446
9447 /* Gain: '<S346>/Gain3' */
9448 /* Transition: '<S361>:93' */
9449 /* Gateway: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9450 /* During: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9451 /* Entry Internal: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9452 /* Transition: '<S360>:88' */
9453 /* Transition: '<S360>:93' */
9454 for (i = 0; i < 33; i++) {
9455 L4_MABX_B.Vehicle_speed_vector_kph[i] = L4_MABX_P.Gain3_Gain_l *
9456 L4_MABX_B.VelocityVector[i];
9457 }
9458
9459 /* End of Gain: '<S346>/Gain3' */
9460
9461 /* RelationalOperator: '<S363>/Compare' incorporates:
9462 * Constant: '<S363>/Constant'
9463 */
9464 for (i = 0; i < 33; i++) {
9465 L4_MABX_B.Compare_nk[i] = (L4_MABX_B.Vehicle_speed_vector_kph[i] <
9466 L4_MABX_P.Constant_Value_n);
9467 }
9468
9469 /* End of RelationalOperator: '<S363>/Compare' */
9470
9471 /* Logic: '<S358>/Logical Operator' */
9472 zcEvent = L4_MABX_B.Compare_nk[0];
9473 for (i = 0; i < 32; i++) {
9474 zcEvent = (zcEvent || L4_MABX_B.Compare_nk[i + 1]);
9475 }
9476
9477 L4_MABX_B.f_vspd_output_less_than_zero = zcEvent;
9478
9479 /* End of Logic: '<S358>/Logical Operator' */
9480
9481 /* MinMax: '<S358>/MinMax3' */
9482 PositionFinalLimited = L4_MABX_B.Vehicle_speed_vector_kph[0];
9483 for (i = 0; i < 32; i++) {
9484 Time56 = L4_MABX_B.Vehicle_speed_vector_kph[i + 1];
9485 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9486 PositionFinalLimited = Time56;
9487 }
9488 }
9489
9490 L4_MABX_B.MinMax3 = PositionFinalLimited;
9491
9492 /* End of MinMax: '<S358>/MinMax3' */
9493
9494 /* UnitDelay: '<S362>/Unit_Delay' */
9495 L4_MABX_B.Unit_Delay_f = L4_MABX_DW.Unit_Delay_DSTATE_bw;
9496
9497 /* Outputs for Atomic SubSystem: '<S362>/If_Then_Else' */
9498 L4_MABX_If_Then_Else_g(L4_MABX_B.LogicalOperator1_ja, L4_MABX_B.Saturation5,
9499 L4_MABX_B.Unit_Delay_f, &L4_MABX_B.If_Then_Else_og);
9500
9501 /* End of Outputs for SubSystem: '<S362>/If_Then_Else' */
9502
9503 /* MinMax: '<S358>/MinMax5' */
9504 DeltaTime = L4_MABX_B.If_Then_Else_og.Switch;
9505 PositionFinalLimited = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
9506 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9507 PositionFinalLimited = DeltaTime;
9508 }
9509
9510 L4_MABX_B.MinMax5 = PositionFinalLimited;
9511
9512 /* End of MinMax: '<S358>/MinMax5' */
9513
9514 /* Sum: '<S358>/Subtract' */
9515 L4_MABX_B.Subtract_al = L4_MABX_B.MinMax3 - L4_MABX_B.MinMax5;
9516
9517 /* Abs: '<S358>/Abs' */
9518 L4_MABX_B.Abs_m = fabs(L4_MABX_B.Subtract_al);
9519
9520 /* RelationalOperator: '<S358>/Relational Operator' incorporates:
9521 * Constant: '<S358>/MIN_VSPD_DELTA_THRESHOLD_KPH_APV'
9522 */
9523 L4_MABX_B.RelationalOperator_fg = (L4_MABX_B.Abs_m >
9524 L4_MABX_P.MIN_VSPD_DELTA_THRESHOLD_KPH_AP);
9525
9526 /* Logic: '<S364>/Logical Operator3' incorporates:
9527 * Constant: '<S358>/CPV'
9528 */
9529 L4_MABX_B.LogicalOperator3_o = !L4_MABX_P.CPV_Value_a;
9530
9531 /* UnitDelay: '<S364>/Unit_Delay' */
9532 L4_MABX_B.Unit_Delay_ag = L4_MABX_DW.Unit_Delay_DSTATE_ko;
9533
9534 /* Logic: '<S364>/Logical Operator' */
9535 L4_MABX_B.LogicalOperator_o = (L4_MABX_B.LogicalOperator3_o &&
9536 L4_MABX_B.Unit_Delay_ag);
9537
9538 /* Logic: '<S364>/Logical Operator1' */
9539 L4_MABX_B.LogicalOperator1_ph = (L4_MABX_B.LogicalOperator1_ja ||
9540 L4_MABX_B.LogicalOperator_o);
9541
9542 /* Logic: '<S358>/Logical Operator2' */
9543 L4_MABX_B.f_vspd_min_delta_greater_than_t = (L4_MABX_B.RelationalOperator_fg &&
9544 L4_MABX_B.LogicalOperator1_ph);
9545
9546 /* MinMax: '<S358>/MinMax4' */
9547 PositionFinalLimited = L4_MABX_B.Vehicle_speed_vector_kph[0];
9548 for (i = 0; i < 32; i++) {
9549 Time56 = L4_MABX_B.Vehicle_speed_vector_kph[i + 1];
9550 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9551 PositionFinalLimited = Time56;
9552 }
9553 }
9554
9555 L4_MABX_B.MinMax4 = PositionFinalLimited;
9556
9557 /* End of MinMax: '<S358>/MinMax4' */
9558
9559 /* MinMax: '<S358>/MinMax6' */
9560 DeltaTime = L4_MABX_B.If_Then_Else_og.Switch;
9561 PositionFinalLimited = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
9562 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9563 PositionFinalLimited = DeltaTime;
9564 }
9565
9566 L4_MABX_B.MinMax6_j = PositionFinalLimited;
9567
9568 /* End of MinMax: '<S358>/MinMax6' */
9569
9570 /* Sum: '<S358>/Subtract1' */
9571 L4_MABX_B.Subtract1_c = L4_MABX_B.MinMax4 - L4_MABX_B.MinMax6_j;
9572
9573 /* Abs: '<S358>/Abs1' */
9574 L4_MABX_B.Abs1_h5 = fabs(L4_MABX_B.Subtract1_c);
9575
9576 /* RelationalOperator: '<S358>/Relational Operator1' incorporates:
9577 * Constant: '<S358>/MAX_VSPD_DELTA_THRESHOLD_KPH_APV'
9578 */
9579 L4_MABX_B.RelationalOperator1_g = (L4_MABX_B.Abs1_h5 >
9580 L4_MABX_P.MAX_VSPD_DELTA_THRESHOLD_KPH_AP);
9581
9582 /* Logic: '<S358>/Logical Operator1' */
9583 L4_MABX_B.f_vspd_max_delta_greater_than_t = (L4_MABX_B.RelationalOperator1_g &&
9584 L4_MABX_B.LogicalOperator1_ph);
9585
9586 /* MinMax: '<S358>/MinMax8' */
9587 PositionFinalLimited = L4_MABX_B.AccelerationVector[0];
9588 for (i = 0; i < 32; i++) {
9589 Time56 = L4_MABX_B.AccelerationVector[i + 1];
9590 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9591 PositionFinalLimited = Time56;
9592 }
9593 }
9594
9595 L4_MABX_B.MinMax8 = PositionFinalLimited;
9596
9597 /* End of MinMax: '<S358>/MinMax8' */
9598
9599 /* RelationalOperator: '<S358>/Relational Operator2' incorporates:
9600 * Constant: '<S358>/ACCEL_RATE_ABS_MAX_THRESHOLD_MS2_APV'
9601 */
9602 L4_MABX_B.f_accel_rate_greater_than_thres = (L4_MABX_B.MinMax8 >
9603 L4_MABX_P.ACCEL_RATE_ABS_MAX_THRESHOLD_MS);
9604
9605 /* MinMax: '<S358>/MinMax7' */
9606 PositionFinalLimited = L4_MABX_B.AccelerationVector[0];
9607 for (i = 0; i < 32; i++) {
9608 Time56 = L4_MABX_B.AccelerationVector[i + 1];
9609 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9610 PositionFinalLimited = Time56;
9611 }
9612 }
9613
9614 L4_MABX_B.MinMax7 = PositionFinalLimited;
9615
9616 /* End of MinMax: '<S358>/MinMax7' */
9617
9618 /* RelationalOperator: '<S358>/Relational Operator3' incorporates:
9619 * Constant: '<S358>/ACCEL_RATE_ABS_MIN_THRESHOLD_MS2_APV'
9620 */
9621 L4_MABX_B.f_decel_rate_greater_than_thres = (L4_MABX_B.MinMax7 <
9622 L4_MABX_P.ACCEL_RATE_ABS_MIN_THRESHOLD_MS);
9623
9624 /* MinMax: '<S358>/MinMax10' */
9625 PositionFinalLimited = L4_MABX_B.JerkVector[0];
9626 for (i = 0; i < 32; i++) {
9627 Time56 = L4_MABX_B.JerkVector[i + 1];
9628 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9629 PositionFinalLimited = Time56;
9630 }
9631 }
9632
9633 L4_MABX_B.MinMax10 = PositionFinalLimited;
9634
9635 /* End of MinMax: '<S358>/MinMax10' */
9636
9637 /* RelationalOperator: '<S358>/Relational Operator4' incorporates:
9638 * Constant: '<S358>/JERK_RATE_ABS_MAX_THRESHOLD_MS3_APV'
9639 */
9640 L4_MABX_B.f_jerk_rate_greater_than_thresh = (L4_MABX_B.MinMax10 >
9641 L4_MABX_P.JERK_RATE_ABS_MAX_THRESHOLD_MS3);
9642
9643 /* MinMax: '<S358>/MinMax9' */
9644 PositionFinalLimited = L4_MABX_B.JerkVector[0];
9645 for (i = 0; i < 32; i++) {
9646 Time56 = L4_MABX_B.JerkVector[i + 1];
9647 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9648 PositionFinalLimited = Time56;
9649 }
9650 }
9651
9652 L4_MABX_B.MinMax9 = PositionFinalLimited;
9653
9654 /* End of MinMax: '<S358>/MinMax9' */
9655
9656 /* RelationalOperator: '<S358>/Relational Operator5' incorporates:
9657 * Constant: '<S358>/JERK_RATE_ABS_MIN_THRESHOLD_MS3_APV'
9658 */
9659 L4_MABX_B.f_jerk_rate_greater_than_thre_n = (L4_MABX_B.MinMax9 <
9660 L4_MABX_P.JERK_RATE_ABS_MIN_THRESHOLD_MS3);
9661
9662 /* Sum: '<S358>/Subtract2' */
9663 L4_MABX_B.Subtract2 = L4_MABX_B.Distance_to_achieve_speed_targe -
9664 L4_MABX_B.PositionVector[32];
9665
9666 /* Abs: '<S358>/Abs2' */
9667 L4_MABX_B.Abs2 = fabs(L4_MABX_B.Subtract2);
9668
9669 /* RelationalOperator: '<S358>/Relational Operator6' incorporates:
9670 * Constant: '<S358>/MAX_DISTANCE_DELTA_THRESHOLD_M_APV'
9671 */
9672 L4_MABX_B.RelationalOperator6_i = (L4_MABX_B.Abs2 >
9673 L4_MABX_P.MAX_DISTANCE_DELTA_THRESHOLD_M_);
9674
9675 /* Logic: '<S358>/Logical Operator3' */
9676 L4_MABX_B.f_distance_max_delta_greater_th = (L4_MABX_B.RelationalOperator6_i &&
9677 L4_MABX_B.LogicalOperator1_ph);
9678
9679 /* Logic: '<S358>/Logical Operator4' */
9680 L4_MABX_B.F_Inhibit_sigmoid_vector_shapin =
9681 (L4_MABX_B.f_vspd_output_less_than_zero ||
9682 L4_MABX_B.f_vspd_min_delta_greater_than_t ||
9683 L4_MABX_B.f_vspd_max_delta_greater_than_t ||
9684 L4_MABX_B.f_accel_rate_greater_than_thres ||
9685 L4_MABX_B.f_decel_rate_greater_than_thres ||
9686 L4_MABX_B.f_jerk_rate_greater_than_thresh ||
9687 L4_MABX_B.f_jerk_rate_greater_than_thre_n ||
9688 L4_MABX_B.f_distance_max_delta_greater_th);
9689
9690 /* Logic: '<S81>/Logical Operator' */
9691 L4_MABX_B.LogicalOperator_nd = !L4_MABX_B.F_Inhibit_sigmoid_vector_shapin;
9692
9693 /* Logic: '<S81>/Logical Operator2' */
9694 L4_MABX_B.LogicalOperator2_ft = (L4_MABX_B.Compare_jr &&
9695 L4_MABX_B.LogicalOperator_nd);
9696
9697 /* RelationalOperator: '<S359>/Relational Operator3' incorporates:
9698 * Constant: '<S359>/CPV1'
9699 */
9700 L4_MABX_B.RelationalOperator3_k = (L4_MABX_B.Saturation5 <
9701 L4_MABX_P.CPV1_Value_i);
9702
9703 /* RelationalOperator: '<S359>/Relational Operator1' incorporates:
9704 * Constant: '<S346>/MIN_VSPD_SIGMOID_INITIAL_KPH_APV'
9705 */
9706 L4_MABX_B.RelationalOperator1_hj = (L4_MABX_B.If_Then_Else_og.Switch <
9707 L4_MABX_P.MIN_VSPD_SIGMOID_INITIAL_KPH_AP);
9708
9709 /* Logic: '<S359>/Logical Operator' */
9710 L4_MABX_B.LogicalOperator_da = (L4_MABX_B.RelationalOperator3_k ||
9711 L4_MABX_B.RelationalOperator1_hj);
9712
9713 /* RelationalOperator: '<S359>/Relational Operator2' incorporates:
9714 * Constant: '<S346>/MIN_VSPD_SIGMOID_FINAL_KPH_APV'
9715 */
9716 L4_MABX_B.RelationalOperator2_g = (L4_MABX_B.VSPD_TARGET_KPH_APV_gu <
9717 L4_MABX_P.MIN_VSPD_SIGMOID_FINAL_KPH_APV_);
9718
9719 /* Logic: '<S359>/Logical Operator2' */
9720 L4_MABX_B.F_set_max_distance_accumulated = (L4_MABX_B.LogicalOperator_da &&
9721 L4_MABX_B.RelationalOperator2_g);
9722
9723 /* UnitDelay: '<S373>/FixPt Unit Delay2' */
9724 L4_MABX_B.FixPtUnitDelay2_oi = L4_MABX_DW.FixPtUnitDelay2_DSTATE_f;
9725
9726 /* Logic: '<S373>/FixPt Logical Operator' */
9727 L4_MABX_B.FixPtLogicalOperator = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
9728 (L4_MABX_B.FixPtUnitDelay2_oi != 0));
9729
9730 /* UnitDelay: '<S373>/FixPt Unit Delay1' */
9731 L4_MABX_B.Xold_p = L4_MABX_DW.FixPtUnitDelay1_DSTATE_l;
9732
9733 /* Switch: '<S373>/Init' incorporates:
9734 * Constant: '<S368>/CPV'
9735 */
9736 if (L4_MABX_B.FixPtLogicalOperator != 0) {
9737 L4_MABX_B.Init_h = L4_MABX_P.CPV_Value_h;
9738 } else {
9739 L4_MABX_B.Init_h = L4_MABX_B.Xold_p;
9740 }
9741
9742 /* End of Switch: '<S373>/Init' */
9743
9744 /* Gain: '<S359>/Gain1' */
9745 L4_MABX_B.Gain1_c = L4_MABX_P.Gain1_Gain_k * L4_MABX_B.Saturation5;
9746
9747 /* DigitalClock: '<S371>/Digital Clock' */
9748 L4_MABX_B.DigitalClock_f = L4_MABX_M->Timing.t[0];
9749
9750 /* UnitDelay: '<S371>/Unit_Delay' */
9751 L4_MABX_B.Unit_Delay_e = L4_MABX_DW.Unit_Delay_DSTATE_p;
9752
9753 /* Sum: '<S371>/Subtract' */
9754 L4_MABX_B.Subtract_b = L4_MABX_B.DigitalClock_f - L4_MABX_B.Unit_Delay_e;
9755
9756 /* Product: '<S368>/Product1' incorporates:
9757 * Constant: '<S367>/CPV1'
9758 */
9759 L4_MABX_B.Product1_a = L4_MABX_P.CPV1_Value_e * L4_MABX_B.Gain1_c *
9760 L4_MABX_B.Subtract_b;
9761
9762 /* Sum: '<S368>/Add' */
9763 L4_MABX_B.Add_h = L4_MABX_B.Init_h + L4_MABX_B.Product1_a;
9764
9765 /* MinMax: '<S368>/MinMax' */
9766 DeltaTime = L4_MABX_B.Distance_to_achieve_speed_targe;
9767 PositionFinalLimited = L4_MABX_B.Add_h;
9768 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9769 PositionFinalLimited = DeltaTime;
9770 }
9771
9772 L4_MABX_B.MinMax_a = PositionFinalLimited;
9773
9774 /* End of MinMax: '<S368>/MinMax' */
9775
9776 /* Outputs for Atomic SubSystem: '<S368>/If_Then_Else' */
9777 L4_MABX_If_Then_Else_g(L4_MABX_B.F_set_max_distance_accumulated,
9778 L4_MABX_B.Distance_to_achieve_speed_targe, L4_MABX_B.MinMax_a,
9779 &L4_MABX_B.If_Then_Else_gf);
9780
9781 /* End of Outputs for SubSystem: '<S368>/If_Then_Else' */
9782
9783 /* RelationalOperator: '<S359>/Relational Operator' */
9784 L4_MABX_B.RelationalOperator_lj = (L4_MABX_B.If_Then_Else_gf.Switch ==
9785 L4_MABX_B.Distance_to_achieve_speed_targe);
9786
9787 /* S-Function (sfix_look1_dyn): '<S359>/Lookup Table Dynamic' */
9788 /* Dynamic Look-Up Table Block: '<S359>/Lookup Table Dynamic'
9789 * Input0 Data Type: Floating Point real_T
9790 * Input1 Data Type: Floating Point real_T
9791 * Input2 Data Type: Floating Point real_T
9792 * Output0 Data Type: Floating Point real_T
9793 * Lookup Method: Linear_Endpoint
9794 *
9795 */
9796 LookUp_real_T_real_T( &(L4_MABX_B.LookupTableDynamic),
9797 &L4_MABX_B.Vehicle_speed_vector_kph[0],
9798 L4_MABX_B.If_Then_Else_gf.Switch,
9799 &L4_MABX_B.PositionVector[0], 32U);
9800
9801 /* Outputs for Atomic SubSystem: '<S359>/If_Then_Else' */
9802 L4_MABX_If_Then_Else_g(L4_MABX_B.RelationalOperator_lj,
9803 L4_MABX_B.VSPD_TARGET_KPH_APV_gu, L4_MABX_B.LookupTableDynamic,
9804 &L4_MABX_B.If_Then_Else_j);
9805
9806 /* End of Outputs for SubSystem: '<S359>/If_Then_Else' */
9807
9808 /* UnitDelay: '<S351>/Delay Input1' */
9809 L4_MABX_B.Uk1_k[0] = L4_MABX_DW.DelayInput1_DSTATE_f[0];
9810 L4_MABX_B.Uk1_k[1] = L4_MABX_DW.DelayInput1_DSTATE_f[1];
9811
9812 /* RelationalOperator: '<S351>/FixPt Relational Operator' */
9813 L4_MABX_B.FixPtRelationalOperator_p[0] =
9814 (L4_MABX_B.Distance_to_achieve_speed_targe != L4_MABX_B.Uk1_k[0]);
9815 L4_MABX_B.FixPtRelationalOperator_p[1] = (L4_MABX_B.Vehicle_speed_target_o !=
9816 L4_MABX_B.Uk1_k[1]);
9817
9818 /* Logic: '<S345>/Logical Operator' */
9819 L4_MABX_B.LogicalOperator_gb = (L4_MABX_B.FixPtRelationalOperator_p[0] ||
9820 L4_MABX_B.FixPtRelationalOperator_p[1]);
9821
9822 /* UnitDelay: '<S353>/Unit_Delay' */
9823 L4_MABX_B.Unit_Delay_l = L4_MABX_DW.Unit_Delay_DSTATE_l;
9824
9825 /* Logic: '<S353>/Logical Operator1' */
9826 L4_MABX_B.LogicalOperator1_lp = (L4_MABX_B.LogicalOperator_gb ||
9827 L4_MABX_B.Unit_Delay_l);
9828
9829 /* UnitDelay: '<S357>/FixPt Unit Delay2' */
9830 L4_MABX_B.FixPtUnitDelay2_nn = L4_MABX_DW.FixPtUnitDelay2_DSTATE_cn;
9831
9832 /* UnitDelay: '<S357>/FixPt Unit Delay1' */
9833 L4_MABX_B.Xold_o = L4_MABX_DW.FixPtUnitDelay1_DSTATE_e;
9834
9835 /* Switch: '<S357>/Init' */
9836 if (L4_MABX_B.FixPtUnitDelay2_nn != 0) {
9837 L4_MABX_B.Init_p = L4_MABX_B.Vehicle_speed_target_o;
9838 } else {
9839 L4_MABX_B.Init_p = L4_MABX_B.Xold_o;
9840 }
9841
9842 /* End of Switch: '<S357>/Init' */
9843
9844 /* UnitDelay: '<S352>/Unit_Delay' */
9845 L4_MABX_B.Vehicle_speed_target_c = L4_MABX_DW.Unit_Delay_1_DSTATE_j;
9846 L4_MABX_B.Vehicle_speed = L4_MABX_DW.Unit_Delay_2_DSTATE_e;
9847 L4_MABX_B.Distance_m = L4_MABX_DW.Unit_Delay_3_DSTATE_j;
9848
9849 /* Outputs for Atomic SubSystem: '<S352>/If_Then_Else' */
9850 L4_MABX_If_Then_Else_m(L4_MABX_B.LogicalOperator_gb,
9851 L4_MABX_B.Vehicle_speed_target_o, L4_MABX_B.SFunction1_o1_loi,
9852 L4_MABX_B.Distance_to_achieve_speed_targe, L4_MABX_B.Vehicle_speed_target_c,
9853 L4_MABX_B.Vehicle_speed, L4_MABX_B.Distance_m, &L4_MABX_B.If_Then_Else_mm);
9854
9855 /* End of Outputs for SubSystem: '<S352>/If_Then_Else' */
9856
9857 /* Sum: '<S352>/Subtract' */
9858 L4_MABX_B.err = L4_MABX_B.If_Then_Else_mm.Vehicle_speed -
9859 L4_MABX_B.If_Then_Else_mm.Vehicle_speed_target;
9860
9861 /* Abs: '<S352>/Abs2' */
9862 L4_MABX_B.err_abs = fabs(L4_MABX_B.err);
9863
9864 /* Gain: '<S352>/Gain2' */
9865 L4_MABX_B.Gain2_k = L4_MABX_P.Gain2_Gain_l *
9866 L4_MABX_B.If_Then_Else_mm.Vehicle_speed;
9867
9868 /* Saturate: '<S352>/Saturation4' */
9869 DeltaTime = L4_MABX_B.Gain2_k;
9870 Time56 = L4_MABX_P.Saturation4_LowerSat_e;
9871 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat_a;
9872 if (DeltaTime > PositionFinalLimited) {
9873 L4_MABX_B.Saturation4 = PositionFinalLimited;
9874 } else if (DeltaTime < Time56) {
9875 L4_MABX_B.Saturation4 = Time56;
9876 } else {
9877 L4_MABX_B.Saturation4 = DeltaTime;
9878 }
9879
9880 /* End of Saturate: '<S352>/Saturation4' */
9881
9882 /* Product: '<S352>/Divide2' */
9883 L4_MABX_B.time_to_target_vspd_secs = L4_MABX_B.If_Then_Else_mm.Distance_m /
9884 L4_MABX_B.Saturation4;
9885
9886 /* DigitalClock: '<S350>/Digital Clock' */
9887 L4_MABX_B.DigitalClock_p = L4_MABX_M->Timing.t[0];
9888
9889 /* UnitDelay: '<S350>/Unit_Delay' */
9890 L4_MABX_B.Unit_Delay_b = L4_MABX_DW.Unit_Delay_DSTATE_f;
9891
9892 /* Sum: '<S350>/Subtract' */
9893 L4_MABX_B.Subtract_g = L4_MABX_B.DigitalClock_p - L4_MABX_B.Unit_Delay_b;
9894
9895 /* MinMax: '<S352>/MinMax3' */
9896 DeltaTime = L4_MABX_B.time_to_target_vspd_secs;
9897 PositionFinalLimited = L4_MABX_B.Subtract_g;
9898 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9899 PositionFinalLimited = DeltaTime;
9900 }
9901
9902 L4_MABX_B.MinMax3_n = PositionFinalLimited;
9903
9904 /* End of MinMax: '<S352>/MinMax3' */
9905
9906 /* Saturate: '<S352>/Saturation1' */
9907 DeltaTime = L4_MABX_B.MinMax3_n;
9908 Time56 = L4_MABX_P.Saturation1_LowerSat_o;
9909 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_j;
9910 if (DeltaTime > PositionFinalLimited) {
9911 L4_MABX_B.Saturation1_e = PositionFinalLimited;
9912 } else if (DeltaTime < Time56) {
9913 L4_MABX_B.Saturation1_e = Time56;
9914 } else {
9915 L4_MABX_B.Saturation1_e = DeltaTime;
9916 }
9917
9918 /* End of Saturate: '<S352>/Saturation1' */
9919
9920 /* Product: '<S352>/Divide' */
9921 L4_MABX_B.Divide_e = L4_MABX_B.err_abs / L4_MABX_B.Saturation1_e;
9922
9923 /* Abs: '<S353>/Abs' */
9924 L4_MABX_B.Abs_ma = fabs(L4_MABX_B.Divide_e);
9925
9926 /* Product: '<S353>/Product1' */
9927 L4_MABX_B.Product1_iv = L4_MABX_B.Abs_ma * L4_MABX_B.Subtract_g;
9928
9929 /* Sum: '<S353>/Add1' */
9930 L4_MABX_B.Add1_bf = L4_MABX_B.Init_p + L4_MABX_B.Product1_iv;
9931
9932 /* MinMax: '<S353>/MinMax2' */
9933 DeltaTime = L4_MABX_B.Vehicle_speed_target_o;
9934 PositionFinalLimited = L4_MABX_B.Add1_bf;
9935 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9936 PositionFinalLimited = DeltaTime;
9937 }
9938
9939 L4_MABX_B.MinMax2_c = PositionFinalLimited;
9940
9941 /* End of MinMax: '<S353>/MinMax2' */
9942
9943 /* Abs: '<S353>/Abs1' */
9944 L4_MABX_B.Abs1_f = fabs(L4_MABX_B.Divide_e);
9945
9946 /* Product: '<S353>/Product2' */
9947 L4_MABX_B.Product2_m = L4_MABX_B.Subtract_g * L4_MABX_B.Abs1_f;
9948
9949 /* Sum: '<S353>/Subtract1' */
9950 L4_MABX_B.Subtract1_h2 = L4_MABX_B.Init_p - L4_MABX_B.Product2_m;
9951
9952 /* MinMax: '<S353>/MinMax1' */
9953 DeltaTime = L4_MABX_B.MinMax2_c;
9954 PositionFinalLimited = L4_MABX_B.Subtract1_h2;
9955 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9956 PositionFinalLimited = DeltaTime;
9957 }
9958
9959 L4_MABX_B.MinMax1_p = PositionFinalLimited;
9960
9961 /* End of MinMax: '<S353>/MinMax1' */
9962
9963 /* Outputs for Atomic SubSystem: '<S353>/If_Then_Else' */
9964 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_lp,
9965 L4_MABX_B.SFunction1_o1_loi, L4_MABX_B.MinMax1_p,
9966 &L4_MABX_B.If_Then_Else_pz);
9967
9968 /* End of Outputs for SubSystem: '<S353>/If_Then_Else' */
9969
9970 /* Outputs for Atomic SubSystem: '<S81>/If_Then_Else' */
9971 L4_MABX_If_Then_Else_g(L4_MABX_B.LogicalOperator2_ft,
9972 L4_MABX_B.If_Then_Else_j.Switch, L4_MABX_B.If_Then_Else_pz.Switch,
9973 &L4_MABX_B.If_Then_Else_ji);
9974
9975 /* End of Outputs for SubSystem: '<S81>/If_Then_Else' */
9976
9977 /* MinMax: '<S81>/MinMax' */
9978 DeltaTime = L4_MABX_B.If_Then_Else_m4.Switch;
9979 PositionFinalLimited = L4_MABX_B.If_Then_Else_bf.Switch;
9980 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9981 PositionFinalLimited = DeltaTime;
9982 }
9983
9984 Time56 = L4_MABX_B.Vehicle_speed_abs_max;
9985 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9986 PositionFinalLimited = Time56;
9987 }
9988
9989 Time56 = L4_MABX_B.If_Then_Else_ji.Switch;
9990 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9991 PositionFinalLimited = Time56;
9992 }
9993
9994 L4_MABX_B.MinMax_o = PositionFinalLimited;
9995
9996 /* End of MinMax: '<S81>/MinMax' */
9997
9998 /* Saturate: '<S81>/Saturation8' */
9999 DeltaTime = L4_MABX_B.MinMax_o;
10000 Time56 = L4_MABX_P.Saturation8_LowerSat;
10001 PositionFinalLimited = L4_MABX_P.Saturation8_UpperSat;
10002 if (DeltaTime > PositionFinalLimited) {
10003 L4_MABX_B.Vehicle_speed_target_n = PositionFinalLimited;
10004 } else if (DeltaTime < Time56) {
10005 L4_MABX_B.Vehicle_speed_target_n = Time56;
10006 } else {
10007 L4_MABX_B.Vehicle_speed_target_n = DeltaTime;
10008 }
10009
10010 /* End of Saturate: '<S81>/Saturation8' */
10011
10012 /* Lookup_n-D: '<S202>/2D_Lookup_Table' */
10013 L4_MABX_B.uD_Lookup_Table_l = look2_binlcapw(0.0,
10014 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_DECEL_RATE_STEP_MPV,
10015 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_PRESS_KPA_DATA_MPV,
10016 L4_MABX_P.uD_Lookup_Table_maxIndex_e, 16U);
10017
10018 /* Product: '<S108>/Divide' */
10019 L4_MABX_B.Divide_f = L4_MABX_B.uD_Lookup_Table_l /
10020 L4_MABX_B.Primary_brake_circuit_pressur_n;
10021
10022 /* Gain: '<S108>/Gain1' */
10023 L4_MABX_B.Gain1_l = L4_MABX_P.Gain1_Gain_o * L4_MABX_B.Divide_f;
10024
10025 /* Saturate: '<S108>/Saturation1' */
10026 DeltaTime = L4_MABX_B.Gain1_l;
10027 Time56 = L4_MABX_P.Saturation1_LowerSat_n;
10028 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_l;
10029 if (DeltaTime > PositionFinalLimited) {
10030 L4_MABX_B.Brake_appl_percent_to_achieve_d = PositionFinalLimited;
10031 } else if (DeltaTime < Time56) {
10032 L4_MABX_B.Brake_appl_percent_to_achieve_d = Time56;
10033 } else {
10034 L4_MABX_B.Brake_appl_percent_to_achieve_d = DeltaTime;
10035 }
10036
10037 /* End of Saturate: '<S108>/Saturation1' */
10038
10039 /* Saturate: '<S81>/Saturation2' incorporates:
10040 * Constant: '<S81>/ACCEL_LIM_MS2_APV'
10041 */
10042 DeltaTime = L4_MABX_P.ACCEL_LIM_MS2_APV_Value;
10043 Time56 = L4_MABX_P.Saturation2_LowerSat_l;
10044 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat_a;
10045 if (DeltaTime > PositionFinalLimited) {
10046 L4_MABX_B.ACCEL_LIM_MS2_APV_b = PositionFinalLimited;
10047 } else if (DeltaTime < Time56) {
10048 L4_MABX_B.ACCEL_LIM_MS2_APV_b = Time56;
10049 } else {
10050 L4_MABX_B.ACCEL_LIM_MS2_APV_b = DeltaTime;
10051 }
10052
10053 /* End of Saturate: '<S81>/Saturation2' */
10054
10055 /* Lookup_n-D: '<S203>/2D_Lookup_Table' */
10056 L4_MABX_B.uD_Lookup_Table_i = look2_binlcapw(L4_MABX_B.ACCEL_LIM_MS2_APV_b,
10057 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_DECEL_RATE_STEP_MPV,
10058 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_PRESS_KPA_DATA_MPV,
10059 L4_MABX_P.uD_Lookup_Table_maxIndex_n, 16U);
10060
10061 /* Product: '<S108>/Divide1' */
10062 L4_MABX_B.Divide1_f = L4_MABX_B.uD_Lookup_Table_i /
10063 L4_MABX_B.Primary_brake_circuit_pressur_n;
10064
10065 /* Gain: '<S108>/Gain2' */
10066 L4_MABX_B.Gain2_e = L4_MABX_P.Gain2_Gain_b * L4_MABX_B.Divide1_f;
10067
10068 /* Saturate: '<S108>/Saturation2' */
10069 DeltaTime = L4_MABX_B.Gain2_e;
10070 Time56 = L4_MABX_P.Saturation2_LowerSat_o;
10071 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat_b;
10072 if (DeltaTime > PositionFinalLimited) {
10073 L4_MABX_B.Brake_appl_percent_for_maximum_ = PositionFinalLimited;
10074 } else if (DeltaTime < Time56) {
10075 L4_MABX_B.Brake_appl_percent_for_maximum_ = Time56;
10076 } else {
10077 L4_MABX_B.Brake_appl_percent_for_maximum_ = DeltaTime;
10078 }
10079
10080 /* End of Saturate: '<S108>/Saturation2' */
10081
10082 /* DataTypeConversion: '<S77>/Data Type Conversion2' */
10083 L4_MABX_B.DataTypeConversion2_l = L4_MABX_B.SPN1760_GrossCombinationVehicle;
10084
10085 /* Outputs for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' incorporates:
10086 * EnablePort: '<S105>/Enable'
10087 */
10088 if (L4_MABX_B.F_Brake_control_active) {
10089 if (!L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
10090 /* InitializeConditions for UnitDelay: '<S148>/Unit_Delay' */
10091 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_P.Unit_Delay_InitialCondition_f;
10092
10093 /* InitializeConditions for UnitDelay: '<S155>/Unit_Delay' */
10094 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Unit_Delay_InitialCondition_jb;
10095
10096 /* InitializeConditions for UnitDelay: '<S175>/Unit_Delay1' */
10097 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Unit_Delay1_InitialCondition_p;
10098
10099 /* InitializeConditions for UnitDelay: '<S176>/Unit_Delay' */
10100 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Unit_Delay_InitialCondition_lq;
10101
10102 /* InitializeConditions for UnitDelay: '<S180>/FixPt Unit Delay2' */
10103 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o4 =
10104 L4_MABX_P.FixPtUnitDelay2_InitialCondit_p;
10105
10106 /* InitializeConditions for UnitDelay: '<S180>/FixPt Unit Delay1' */
10107 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 =
10108 L4_MABX_P.FixPtUnitDelay1_InitialCondit_b;
10109
10110 /* InitializeConditions for UnitDelay: '<S175>/Unit_Delay2' */
10111 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_P.Unit_Delay2_InitialCondition_b;
10112
10113 /* InitializeConditions for UnitDelay: '<S147>/Unit_Delay' */
10114 L4_MABX_DW.Unit_Delay_DSTATE_hs = L4_MABX_P.Unit_Delay_InitialCondition_h;
10115 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = true;
10116 }
10117
10118 /* Lookup_n-D: '<S149>/1D_Lookup_Table' */
10119 L4_MABX_B.uD_Lookup_Table_f = look1_binlcapw(L4_MABX_B.DataTypeConversion2_l,
10120 BRK_DEM_MASS_STEP_MPV, BRK_DEM_KP_DATA_MPV, 7U);
10121
10122 /* Lookup_n-D: '<S150>/1D_Lookup_Table' */
10123 L4_MABX_B.uD_Lookup_Table_p = look1_binlcapw(L4_MABX_B.DataTypeConversion2_l,
10124 BRK_DEM_MASS_STEP_MPV, BRK_DEM_KI_DATA_MPV, 7U);
10125
10126 /* Lookup_n-D: '<S151>/1D_Lookup_Table' */
10127 L4_MABX_B.uD_Lookup_Table_o5 = look1_binlcapw
10128 (L4_MABX_B.DataTypeConversion2_l, BRK_DEM_MASS_STEP_MPV,
10129 BRK_DEM_KD_DATA_MPV, 7U);
10130
10131 /* Abs: '<S152>/Abs' */
10132 L4_MABX_B.Abs_k = fabs(L4_MABX_B.uD_Lookup_Table_p);
10133
10134 /* Abs: '<S152>/Abs1' */
10135 L4_MABX_B.Abs1_eg = fabs(L4_MABX_B.uD_Lookup_Table_o5);
10136
10137 /* DigitalClock: '<S148>/Digital Clock' */
10138 L4_MABX_B.DigitalClock_n = L4_MABX_M->Timing.t[0];
10139
10140 /* UnitDelay: '<S148>/Unit_Delay' */
10141 L4_MABX_B.Unit_Delay_ko = L4_MABX_DW.Unit_Delay_DSTATE_eu;
10142
10143 /* Sum: '<S148>/Subtract' */
10144 L4_MABX_B.Subtract_ac = L4_MABX_B.DigitalClock_n - L4_MABX_B.Unit_Delay_ko;
10145
10146 /* UnitDelay: '<S155>/Unit_Delay' */
10147 L4_MABX_B.Unit_Delay_m1 = L4_MABX_DW.Unit_Delay_DSTATE_n;
10148
10149 /* Logic: '<S155>/Logical Operator1' incorporates:
10150 * Constant: '<S105>/CPV2'
10151 */
10152 L4_MABX_B.LogicalOperator1_pf = (L4_MABX_B.Unit_Delay_m1 ||
10153 L4_MABX_P.CPV2_Value_a);
10154
10155 /* UnitDelay: '<S175>/Unit_Delay1' */
10156 L4_MABX_B.Unit_Delay1_jk = L4_MABX_DW.Unit_Delay1_DSTATE_f;
10157
10158 /* Logic: '<S175>/Logical Operator' */
10159 L4_MABX_B.LogicalOperator_lo = (L4_MABX_B.LogicalOperator1_pf ||
10160 L4_MABX_B.Unit_Delay1_jk);
10161
10162 /* UnitDelay: '<S176>/Unit_Delay' */
10163 L4_MABX_B.Unit_Delay_li = L4_MABX_DW.Unit_Delay_DSTATE_g4;
10164
10165 /* Logic: '<S176>/Logical Operator1' */
10166 L4_MABX_B.LogicalOperator1_oy = (L4_MABX_B.LogicalOperator1_pf ||
10167 L4_MABX_B.Unit_Delay_li);
10168
10169 /* UnitDelay: '<S180>/FixPt Unit Delay2' */
10170 L4_MABX_B.FixPtUnitDelay2_mf = L4_MABX_DW.FixPtUnitDelay2_DSTATE_o4;
10171
10172 /* UnitDelay: '<S180>/FixPt Unit Delay1' */
10173 L4_MABX_B.Xold_cj = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2;
10174
10175 /* Switch: '<S180>/Init' */
10176 if (L4_MABX_B.FixPtUnitDelay2_mf != 0) {
10177 L4_MABX_B.Init_c = L4_MABX_B.Vehicle_speed_target_n;
10178 } else {
10179 L4_MABX_B.Init_c = L4_MABX_B.Xold_cj;
10180 }
10181
10182 /* End of Switch: '<S180>/Init' */
10183
10184 /* Abs: '<S176>/Abs' incorporates:
10185 * Constant: '<S105>/BRK_DECEL_DEM_SLEW_INC_APV'
10186 */
10187 L4_MABX_B.Abs_o = fabs(L4_MABX_P.BRK_DECEL_DEM_SLEW_INC_APV_Valu);
10188
10189 /* Product: '<S176>/Product1' */
10190 L4_MABX_B.Product1_hy = L4_MABX_B.Abs_o * L4_MABX_B.Subtract_ac;
10191
10192 /* Sum: '<S176>/Add1' */
10193 L4_MABX_B.Add1_o = L4_MABX_B.Init_c + L4_MABX_B.Product1_hy;
10194
10195 /* MinMax: '<S176>/MinMax2' */
10196 DeltaTime = L4_MABX_B.Vehicle_speed_target_n;
10197 PositionFinalLimited = L4_MABX_B.Add1_o;
10198 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10199 PositionFinalLimited = DeltaTime;
10200 }
10201
10202 L4_MABX_B.MinMax2_p = PositionFinalLimited;
10203
10204 /* End of MinMax: '<S176>/MinMax2' */
10205
10206 /* Abs: '<S176>/Abs1' incorporates:
10207 * Constant: '<S105>/BRK_DECEL_DEM_SLEW_DEC_APV'
10208 */
10209 L4_MABX_B.Abs1_g = fabs(L4_MABX_P.BRK_DECEL_DEM_SLEW_DEC_APV_Valu);
10210
10211 /* Product: '<S176>/Product2' */
10212 L4_MABX_B.Product2_fh = L4_MABX_B.Subtract_ac * L4_MABX_B.Abs1_g;
10213
10214 /* Sum: '<S176>/Subtract1' */
10215 L4_MABX_B.Subtract1_f = L4_MABX_B.Init_c - L4_MABX_B.Product2_fh;
10216
10217 /* MinMax: '<S176>/MinMax1' */
10218 DeltaTime = L4_MABX_B.MinMax2_p;
10219 PositionFinalLimited = L4_MABX_B.Subtract1_f;
10220 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10221 PositionFinalLimited = DeltaTime;
10222 }
10223
10224 L4_MABX_B.MinMax1_hl = PositionFinalLimited;
10225
10226 /* End of MinMax: '<S176>/MinMax1' */
10227
10228 /* Outputs for Atomic SubSystem: '<S176>/If_Then_Else' */
10229 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_oy,
10230 L4_MABX_B.DataTypeConversion5_o, L4_MABX_B.MinMax1_hl,
10231 &L4_MABX_B.If_Then_Else_iy);
10232
10233 /* End of Outputs for SubSystem: '<S176>/If_Then_Else' */
10234
10235 /* Sum: '<S153>/Subtract' */
10236 L4_MABX_B.Subtract_jh = L4_MABX_B.If_Then_Else_iy.Switch -
10237 L4_MABX_B.DataTypeConversion5_o;
10238
10239 /* MinMax: '<S175>/MinMax1' incorporates:
10240 * Constant: '<S105>/BRK_DECEL_DEM_T_FILT_CTRL_ERROR_APV'
10241 */
10242 DeltaTime = L4_MABX_B.Subtract_ac;
10243 PositionFinalLimited = L4_MABX_P.BRK_DECEL_DEM_T_FILT_CTRL_ERROR;
10244 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10245 PositionFinalLimited = DeltaTime;
10246 }
10247
10248 L4_MABX_B.MinMax1_jg = PositionFinalLimited;
10249
10250 /* End of MinMax: '<S175>/MinMax1' */
10251
10252 /* Saturate: '<S175>/Saturation' */
10253 DeltaTime = L4_MABX_B.MinMax1_jg;
10254 Time56 = L4_MABX_P.Saturation_LowerSat_g;
10255 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_o;
10256 if (DeltaTime > PositionFinalLimited) {
10257 L4_MABX_B.Saturation_m = PositionFinalLimited;
10258 } else if (DeltaTime < Time56) {
10259 L4_MABX_B.Saturation_m = Time56;
10260 } else {
10261 L4_MABX_B.Saturation_m = DeltaTime;
10262 }
10263
10264 /* End of Saturate: '<S175>/Saturation' */
10265
10266 /* Product: '<S175>/Divide' */
10267 L4_MABX_B.Divide_af = L4_MABX_B.Subtract_ac / L4_MABX_B.Saturation_m;
10268
10269 /* Product: '<S175>/Product2' */
10270 L4_MABX_B.Product2_ce = L4_MABX_B.Subtract_jh * L4_MABX_B.Divide_af;
10271
10272 /* Sum: '<S175>/Subtract1' incorporates:
10273 * Constant: '<S175>/Constant1'
10274 */
10275 L4_MABX_B.Subtract1_cr = L4_MABX_P.Constant1_Value_o - L4_MABX_B.Divide_af;
10276
10277 /* UnitDelay: '<S175>/Unit_Delay2' */
10278 L4_MABX_B.Unit_Delay2_a = L4_MABX_DW.Unit_Delay2_DSTATE_c;
10279
10280 /* Product: '<S175>/Product1' */
10281 L4_MABX_B.Product1_ch = L4_MABX_B.Subtract1_cr * L4_MABX_B.Unit_Delay2_a;
10282
10283 /* Sum: '<S175>/Add1' */
10284 L4_MABX_B.Add1_hla = L4_MABX_B.Product2_ce + L4_MABX_B.Product1_ch;
10285
10286 /* Outputs for Atomic SubSystem: '<S175>/If_Then_Else' */
10287 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_lo, L4_MABX_B.Subtract_jh,
10288 L4_MABX_B.Add1_hla, &L4_MABX_B.If_Then_Else_bc);
10289
10290 /* End of Outputs for SubSystem: '<S175>/If_Then_Else' */
10291
10292 /* RelationalOperator: '<S160>/Compare' incorporates:
10293 * Constant: '<S160>/Constant'
10294 */
10295 L4_MABX_B.Compare_niw = (L4_MABX_B.Abs1_eg >
10296 L4_MABX_P.CompareToConstant1_const_m);
10297
10298 /* Outputs for Enabled SubSystem: '<S152>/Calculate_D_term' */
10299
10300 /* Constant: '<S105>/BRK_DECEL_DEM_T_FILT_D_APV' */
10301 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_niw, L4_MABX_B.uD_Lookup_Table_o5,
10302 L4_MABX_B.Subtract_ac, L4_MABX_B.LogicalOperator1_pf,
10303 L4_MABX_B.If_Then_Else_bc.Switch,
10304 L4_MABX_P.BRK_DECEL_DEM_T_FILT_D_APV_Valu, &L4_MABX_B.Calculate_D_term_p,
10305 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
10306
10307 /* End of Outputs for SubSystem: '<S152>/Calculate_D_term' */
10308
10309 /* Product: '<S158>/Product' */
10310 L4_MABX_B.Product_f = L4_MABX_B.uD_Lookup_Table_f *
10311 L4_MABX_B.If_Then_Else_bc.Switch;
10312
10313 /* UnitDelay: '<S147>/Unit_Delay' */
10314 L4_MABX_B.Unit_Delay_fg = L4_MABX_DW.Unit_Delay_DSTATE_hs;
10315
10316 /* RelationalOperator: '<S159>/Compare' incorporates:
10317 * Constant: '<S159>/Constant'
10318 */
10319 L4_MABX_B.Compare_dl = (L4_MABX_B.Abs_k >
10320 L4_MABX_P.CompareToConstant_const_c);
10321
10322 /* Outputs for Enabled SubSystem: '<S152>/Calculate_I_term' */
10323
10324 /* Constant: '<S105>/BRK_DECEL_DEM_AW_COND_INT_APV' incorporates:
10325 * Constant: '<S105>/BRK_DECEL_DEM_AW_HYSTERESIS_APV'
10326 * Constant: '<S105>/CPV1'
10327 */
10328 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_dl, L4_MABX_B.Product_f,
10329 L4_MABX_B.uD_Lookup_Table_p, L4_MABX_B.Brake_appl_percent,
10330 L4_MABX_B.If_Then_Else_bc.Switch, L4_MABX_B.LogicalOperator1_pf,
10331 L4_MABX_B.Subtract_ac, L4_MABX_B.Brake_appl_percent_to_achieve_d,
10332 L4_MABX_P.BRK_DECEL_DEM_AW_COND_INT_APV_V,
10333 L4_MABX_P.BRK_DECEL_DEM_AW_HYSTERESIS_APV, L4_MABX_P.CPV1_Value_no,
10334 L4_MABX_B.Unit_Delay_fg, &L4_MABX_B.Calculate_I_term_e,
10335 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
10336
10337 /* End of Outputs for SubSystem: '<S152>/Calculate_I_term' */
10338
10339 /* RelationalOperator: '<S178>/min_relop' incorporates:
10340 * Constant: '<S105>/BRK_DECEL_DEM_SLEW_INC_APV'
10341 * Constant: '<S178>/min_val'
10342 */
10343 L4_MABX_B.min_relop_a5 = (L4_MABX_P.CheckStaticLowerBound_min_d <=
10344 L4_MABX_P.BRK_DECEL_DEM_SLEW_INC_APV_Valu);
10345
10346 /* Assertion: '<S178>/Assertion' */
10347 utAssert(L4_MABX_B.min_relop_a5);
10348
10349 /* Sum: '<S154>/Add' */
10350 L4_MABX_B.Add_mh = ((L4_MABX_B.Product_f +
10351 L4_MABX_B.Calculate_I_term_e.If_Then_Else.Switch) +
10352 L4_MABX_B.Calculate_D_term_p.Subtract) +
10353 L4_MABX_B.Brake_appl_percent_to_achieve_d;
10354
10355 /* RelationalOperator: '<S181>/Relational Operator1' */
10356 L4_MABX_B.RelationalOperator1_k = (L4_MABX_B.Add_mh >=
10357 L4_MABX_B.Brake_appl_percent_for_maximum_);
10358
10359 /* RelationalOperator: '<S181>/Relational Operator' incorporates:
10360 * Constant: '<S105>/CPV'
10361 */
10362 L4_MABX_B.RelationalOperator_m = (L4_MABX_B.Add_mh <= L4_MABX_P.CPV_Value_i);
10363
10364 /* Outputs for Atomic SubSystem: '<S181>/If_Then_Else1' */
10365
10366 /* Constant: '<S105>/CPV' */
10367 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_m, L4_MABX_P.CPV_Value_i,
10368 L4_MABX_B.Add_mh, &L4_MABX_B.If_Then_Else1_gx);
10369
10370 /* End of Outputs for SubSystem: '<S181>/If_Then_Else1' */
10371
10372 /* Outputs for Atomic SubSystem: '<S181>/If_Then_Else' */
10373 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_k,
10374 L4_MABX_B.Brake_appl_percent_for_maximum_,
10375 L4_MABX_B.If_Then_Else1_gx.Switch,
10376 &L4_MABX_B.If_Then_Else_fo);
10377
10378 /* End of Outputs for SubSystem: '<S181>/If_Then_Else' */
10379 } else {
10380 if (L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
10381 /* Disable for Enabled SubSystem: '<S152>/Calculate_D_term' */
10382 if (L4_MABX_DW.Calculate_D_term_p.Calculate_D_term_MODE) {
10383 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term_p,
10384 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
10385 }
10386
10387 /* End of Disable for SubSystem: '<S152>/Calculate_D_term' */
10388
10389 /* Disable for Enabled SubSystem: '<S152>/Calculate_I_term' */
10390 if (L4_MABX_DW.Calculate_I_term_e.Calculate_I_term_MODE) {
10391 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term_e,
10392 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
10393 }
10394
10395 /* End of Disable for SubSystem: '<S152>/Calculate_I_term' */
10396
10397 /* Disable for Outport: '<S105>/PID_output' */
10398 L4_MABX_B.If_Then_Else_fo.Switch = L4_MABX_P.PID_output_Y0_p;
10399 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = false;
10400 }
10401 }
10402
10403 /* End of Outputs for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
10404
10405 /* RelationalOperator: '<S106>/Relational Operator2' incorporates:
10406 * Constant: '<S106>/CPV2'
10407 */
10408 L4_MABX_B.F_Driver_braking = (L4_MABX_B.XPRControlMode ==
10409 L4_MABX_P.CPV2_Value_hm);
10410
10411 /* Logic: '<S106>/Logical Operator2' */
10412 L4_MABX_B.F_Operator_brake_appl = (L4_MABX_B.If_Then_Else_l.Switch &&
10413 L4_MABX_B.F_Driver_braking);
10414
10415 /* RelationalOperator: '<S106>/Relational Operator5' incorporates:
10416 * Constant: '<S106>/BENDIX_2C2_BRAKE_APPL_THRESHOLD_KPA_APV'
10417 */
10418 L4_MABX_B.RelationalOperator5[0] = (L4_MABX_B.Bendix_2C2_Primary_brake_circui >
10419 L4_MABX_P.BENDIX_2C2_BRAKE_APPL_THRESHOLD);
10420 L4_MABX_B.RelationalOperator5[1] = (L4_MABX_B.Bendix_2C2_Secondary_brake_circ >
10421 L4_MABX_P.BENDIX_2C2_BRAKE_APPL_THRESHOLD);
10422
10423 /* Logic: '<S106>/Logical Operator6' */
10424 L4_MABX_B.F_Bendix_2C2_service_brake_pres = (L4_MABX_B.RelationalOperator5[0] ||
10425 L4_MABX_B.RelationalOperator5[1]);
10426
10427 /* RelationalOperator: '<S106>/Relational Operator' incorporates:
10428 * Constant: '<S106>/CPV'
10429 */
10430 L4_MABX_B.F_Bendix_2C2_braking = (L4_MABX_B.XPRControlMode ==
10431 L4_MABX_P.CPV_Value_e);
10432
10433 /* Logic: '<S106>/Logical Operator7' */
10434 L4_MABX_B.F_ADAS_brake_appl = (L4_MABX_B.If_Then_Else_l.Switch &&
10435 L4_MABX_B.F_Bendix_2C2_braking && L4_MABX_B.F_Bendix_2C2_service_brake_pres);
10436
10437 /* RelationalOperator: '<S106>/Relational Operator1' incorporates:
10438 * Constant: '<S106>/CPV1'
10439 */
10440 L4_MABX_B.F_ADAS_brake_error = (L4_MABX_B.XPRErrorState !=
10441 L4_MABX_P.CPV1_Value_i5);
10442
10443 /* Lookup_n-D: '<S201>/2D_Lookup_Table' */
10444 L4_MABX_B.uD_Lookup_Table_le = look2_binlcapw
10445 (L4_MABX_B.brake_system_avg_appl_pressure_,
10446 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_PRESS_KPA_STEP_MPV,
10447 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_DECEL_RATE_DATA_MPV,
10448 L4_MABX_P.uD_Lookup_Table_maxIndex_m, 16U);
10449
10450 /* Saturate: '<S108>/Saturation4' */
10451 DeltaTime = L4_MABX_B.uD_Lookup_Table_le;
10452 Time56 = L4_MABX_P.Saturation4_LowerSat_a;
10453 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat_f;
10454 if (DeltaTime > PositionFinalLimited) {
10455 L4_MABX_B.Decel_rate_calculated_ms2 = PositionFinalLimited;
10456 } else if (DeltaTime < Time56) {
10457 L4_MABX_B.Decel_rate_calculated_ms2 = Time56;
10458 } else {
10459 L4_MABX_B.Decel_rate_calculated_ms2 = DeltaTime;
10460 }
10461
10462 /* End of Saturate: '<S108>/Saturation4' */
10463
10464 /* DataTypeConversion: '<S109>/Data Type Conversion' */
10465 L4_MABX_B.DataTypeConversion_p = L4_MABX_B.SFunction1_o1_lo;
10466
10467 /* DataTypeConversion: '<S109>/Data Type Conversion1' */
10468 L4_MABX_B.DataTypeConversion1_k = L4_MABX_B.SFunction1_o2_pw;
10469
10470 /* Sum: '<S109>/Add' */
10471 L4_MABX_B.Add_m = L4_MABX_B.DataTypeConversion_p +
10472 L4_MABX_B.DataTypeConversion1_k;
10473
10474 /* UnitDelay: '<S109>/Unit_Delay' */
10475 L4_MABX_B.Unit_Delay_dy = L4_MABX_DW.Unit_Delay_DSTATE_eu4;
10476
10477 /* UnitDelay: '<S205>/Unit_Delay1' */
10478 L4_MABX_B.Unit_Delay1_k = L4_MABX_DW.Unit_Delay1_DSTATE_di;
10479
10480 /* Logic: '<S205>/Logical Operator' */
10481 L4_MABX_B.LogicalOperator_fc = (L4_MABX_B.Unit_Delay_dy ||
10482 L4_MABX_B.Unit_Delay1_k);
10483
10484 /* Gain: '<S109>/Gain' */
10485 L4_MABX_B.Gain_j = L4_MABX_P.Gain_Gain_f * L4_MABX_B.Add_m;
10486
10487 /* MinMax: '<S205>/MinMax1' incorporates:
10488 * Constant: '<S109>/Constant10'
10489 * Constant: '<S109>/VSPD_CAN_HRW_0B_FILT_T_APV'
10490 */
10491 DeltaTime = L4_MABX_P.Constant10_Value;
10492 PositionFinalLimited = L4_MABX_P.VSPD_CAN_HRW_0B_FILT_T_APV_Valu;
10493 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10494 PositionFinalLimited = DeltaTime;
10495 }
10496
10497 L4_MABX_B.MinMax1_i = PositionFinalLimited;
10498
10499 /* End of MinMax: '<S205>/MinMax1' */
10500
10501 /* Saturate: '<S205>/Saturation' */
10502 DeltaTime = L4_MABX_B.MinMax1_i;
10503 Time56 = L4_MABX_P.Saturation_LowerSat_b;
10504 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_l;
10505 if (DeltaTime > PositionFinalLimited) {
10506 L4_MABX_B.Saturation_nc = PositionFinalLimited;
10507 } else if (DeltaTime < Time56) {
10508 L4_MABX_B.Saturation_nc = Time56;
10509 } else {
10510 L4_MABX_B.Saturation_nc = DeltaTime;
10511 }
10512
10513 /* End of Saturate: '<S205>/Saturation' */
10514
10515 /* Product: '<S205>/Divide' incorporates:
10516 * Constant: '<S109>/Constant10'
10517 */
10518 L4_MABX_B.Divide_ae = L4_MABX_P.Constant10_Value / L4_MABX_B.Saturation_nc;
10519
10520 /* Product: '<S205>/Product2' */
10521 L4_MABX_B.Product2_o = L4_MABX_B.Gain_j * L4_MABX_B.Divide_ae;
10522
10523 /* Sum: '<S205>/Subtract1' incorporates:
10524 * Constant: '<S205>/Constant1'
10525 */
10526 L4_MABX_B.Subtract1_e = L4_MABX_P.Constant1_Value_od - L4_MABX_B.Divide_ae;
10527
10528 /* UnitDelay: '<S205>/Unit_Delay2' */
10529 L4_MABX_B.Unit_Delay2_g = L4_MABX_DW.Unit_Delay2_DSTATE_e;
10530
10531 /* Product: '<S205>/Product1' */
10532 L4_MABX_B.Product1_o = L4_MABX_B.Subtract1_e * L4_MABX_B.Unit_Delay2_g;
10533
10534 /* Sum: '<S205>/Add1' */
10535 L4_MABX_B.Add1_n1 = L4_MABX_B.Product2_o + L4_MABX_B.Product1_o;
10536
10537 /* Outputs for Atomic SubSystem: '<S205>/If_Then_Else' */
10538 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_fc, L4_MABX_B.Gain_j,
10539 L4_MABX_B.Add1_n1, &L4_MABX_B.If_Then_Else_g);
10540
10541 /* End of Outputs for SubSystem: '<S205>/If_Then_Else' */
10542
10543 /* SampleTimeMath: '<S204>/TSamp'
10544 *
10545 * About '<S204>/TSamp':
10546 * y = u * K where K = 1 / ( w * Ts )
10547 */
10548 L4_MABX_B.TSamp = L4_MABX_B.If_Then_Else_g.Switch * L4_MABX_P.TSamp_WtEt;
10549
10550 /* UnitDelay: '<S204>/UD' */
10551 L4_MABX_B.Uk1_b = L4_MABX_DW.UD_DSTATE;
10552
10553 /* Sum: '<S204>/Diff' */
10554 L4_MABX_B.Diff = L4_MABX_B.TSamp - L4_MABX_B.Uk1_b;
10555
10556 /* MinMax: '<S77>/MinMax' */
10557 DeltaTime = L4_MABX_B.If_Then_Else_nj.Switch;
10558 PositionFinalLimited = L4_MABX_B.If_Then_Else_fo.Switch;
10559 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10560 PositionFinalLimited = DeltaTime;
10561 }
10562
10563 L4_MABX_B.BrakingPID_Y_percent = PositionFinalLimited;
10564
10565 /* End of MinMax: '<S77>/MinMax' */
10566
10567 /* Gain: '<S77>/Gain' */
10568 L4_MABX_B.BrakingPID_Y_k = L4_MABX_P.Gain_Gain_no *
10569 L4_MABX_B.BrakingPID_Y_percent;
10570
10571 /* DataTypeConversion: '<S79>/Data Type Conversion' */
10572 L4_MABX_B.DataTypeConversion_de = AutonomousEnabled;
10573
10574 /* DataTypeConversion: '<S79>/Data Type Conversion2' */
10575 L4_MABX_B.DataTypeConversion2_lf = (real32_T)L4_MABX_B.SFunction1_o1_loi;
10576
10577 /* DataTypeConversion: '<S79>/Data Type Conversion1' */
10578 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o8_ci);
10579 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
10580 PositionFinalLimited = 0.0;
10581 } else {
10582 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
10583 }
10584
10585 L4_MABX_B.DataTypeConversion1_f1 = (uint8_T)(PositionFinalLimited < 0.0 ?
10586 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
10587 (uint8_T)PositionFinalLimited);
10588
10589 /* End of DataTypeConversion: '<S79>/Data Type Conversion1' */
10590
10591 /* Chart: '<S79>/Chart' incorporates:
10592 * Constant: '<S79>/Constant'
10593 */
10594 /* Gateway: STATE_CONTROL_10ms/Chart */
10595 /* During: STATE_CONTROL_10ms/Chart */
10596 if (L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ == 0U) {
10597 /* Entry: STATE_CONTROL_10ms/Chart */
10598 L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ = 1U;
10599
10600 /* Entry Internal: STATE_CONTROL_10ms/Chart */
10601 /* Transition: '<S209>:2' */
10602 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_Init;
10603
10604 /* Entry 'Init': '<S209>:1' */
10605 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_INIT;
10606 } else {
10607 switch (L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA) {
10608 case L4_MABX_IN_Init:
10609 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_INIT;
10610
10611 /* During 'Init': '<S209>:1' */
10612 if (!L4_MABX_P.Constant_Value_cp) {
10613 /* Transition: '<S209>:9' */
10614 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorDisabled;
10615
10616 /* Entry 'OperatorDisabled': '<S209>:3' */
10617 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10618 }
10619 break;
10620
10621 case L4_MABX_IN_OperatorDisabled:
10622 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10623
10624 /* During 'OperatorDisabled': '<S209>:3' */
10625 if (L4_MABX_B.DataTypeConversion_de) {
10626 /* Transition: '<S209>:11' */
10627 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorEnabled;
10628
10629 /* Entry 'OperatorEnabled': '<S209>:10' */
10630 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_AUTO_CTRL_ENABLED;
10631
10632 /* Entry Internal 'OperatorEnabled': '<S209>:10' */
10633 /* Transition: '<S209>:16' */
10634 /* Entry 'AutoControlEnabled': '<S209>:13' */
10635 /* Entry Internal 'AutoControlEnabled': '<S209>:13' */
10636 /* Transition: '<S209>:15' */
10637 /* Entry 'init': '<S209>:14' */
10638 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_INIT;
10639 }
10640 break;
10641
10642 default:
10643 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_AUTO_CTRL_ENABLED;
10644
10645 /* During 'OperatorEnabled': '<S209>:10' */
10646 if ((!L4_MABX_B.DataTypeConversion_de) || L4_MABX_P.Constant_Value_cp) {
10647 /* Transition: '<S209>:12' */
10648 /* Exit Internal 'OperatorEnabled': '<S209>:10' */
10649 /* Exit Internal 'AutoControlEnabled': '<S209>:13' */
10650 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorDisabled;
10651
10652 /* Entry 'OperatorDisabled': '<S209>:3' */
10653 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10654 } else {
10655 /* During 'AutoControlEnabled': '<S209>:13' */
10656 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_INIT;
10657
10658 /* During 'init': '<S209>:14' */
10659 }
10660 break;
10661 }
10662 }
10663
10664 /* End of Chart: '<S79>/Chart' */
10665
10666 /* Outputs for Enabled SubSystem: '<S79>/Engine_speed_target' incorporates:
10667 * EnablePort: '<S212>/Enable'
10668 */
10669 if (L4_MABX_B.LogicalOperator_k) {
10670 if (!L4_MABX_DW.Engine_speed_target_MODE) {
10671 L4_MABX_DW.Engine_speed_target_MODE = true;
10672 }
10673
10674 /* Gain: '<S212>/KPH_TO_MPH' */
10675 L4_MABX_B.KPH_TO_MPH = L4_MABX_P.KPH_TO_MPH_Gain *
10676 L4_MABX_B.VSPD_TARGET_KPH_APV_g;
10677
10678 /* MinMax: '<S212>/MinMax' incorporates:
10679 * Constant: '<S212>/Constant2'
10680 * Constant: '<S212>/TIRE_DIAM_INCHES_APV'
10681 */
10682 DeltaTime = L4_MABX_P.TIRE_DIAM_INCHES_APV_Value;
10683 PositionFinalLimited = L4_MABX_P.Constant2_Value_m;
10684 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10685 PositionFinalLimited = DeltaTime;
10686 }
10687
10688 L4_MABX_B.MinMax_dl = PositionFinalLimited;
10689
10690 /* End of MinMax: '<S212>/MinMax' */
10691
10692 /* Product: '<S212>/Divide' incorporates:
10693 * Constant: '<S212>/CONVERSION_CONSTANT_CPV'
10694 * Constant: '<S212>/REAR_AXLE_RATIO_VALUE_APV'
10695 */
10696 L4_MABX_B.Divide_p = L4_MABX_B.KPH_TO_MPH *
10697 L4_MABX_B.SPN526_TransActualGearRatio *
10698 L4_MABX_P.REAR_AXLE_RATIO_VALUE_APV_Value *
10699 L4_MABX_P.CONVERSION_CONSTANT_CPV_Value / L4_MABX_B.MinMax_dl;
10700
10701 /* MinMax: '<S212>/MinMax1' incorporates:
10702 * Constant: '<S212>/Constant1'
10703 */
10704 DeltaTime = L4_MABX_B.Divide_p;
10705 PositionFinalLimited = L4_MABX_P.Constant1_Value_fx;
10706 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10707 PositionFinalLimited = DeltaTime;
10708 }
10709
10710 L4_MABX_B.MinMax1_nv = PositionFinalLimited;
10711
10712 /* End of MinMax: '<S212>/MinMax1' */
10713 } else {
10714 if (L4_MABX_DW.Engine_speed_target_MODE) {
10715 /* Disable for Outport: '<S212>/Out1' */
10716 L4_MABX_B.MinMax1_nv = L4_MABX_P.Out1_Y0;
10717 L4_MABX_DW.Engine_speed_target_MODE = false;
10718 }
10719 }
10720
10721 /* End of Outputs for SubSystem: '<S79>/Engine_speed_target' */
10722
10723 /* RelationalOperator: '<S213>/Relational Operator1' incorporates:
10724 * Constant: '<S213>/CPV3'
10725 */
10726 L4_MABX_B.RelationalOperator1_cn = (L4_MABX_B.SFunction1_o1_loi <=
10727 L4_MABX_P.CPV3_Value_n);
10728
10729 /* RelationalOperator: '<S213>/Relational Operator3' incorporates:
10730 * Constant: '<S213>/CPV1'
10731 */
10732 L4_MABX_B.RelationalOperator3_g = (L4_MABX_B.SPN524_TransSelectedGear ==
10733 L4_MABX_P.CPV1_Value_n);
10734
10735 /* RelationalOperator: '<S213>/Relational Operator2' incorporates:
10736 * Constant: '<S213>/CPV2'
10737 */
10738 L4_MABX_B.RelationalOperator2_f = (L4_MABX_B.SPN523_TransCurrentGear ==
10739 L4_MABX_P.CPV2_Value_h);
10740
10741 /* RelationalOperator: '<S213>/Relational Operator4' incorporates:
10742 * Constant: '<S213>/CPV5'
10743 */
10744 L4_MABX_B.RelationalOperator4_o = (L4_MABX_B.SFunction1_o2_nx ==
10745 L4_MABX_P.CPV5_Value_g);
10746
10747 /* Logic: '<S213>/Logical Operator' */
10748 L4_MABX_B.F_Ignition_sw_off_conditions_me = (L4_MABX_B.RelationalOperator1_cn &&
10749 L4_MABX_B.RelationalOperator3_g && L4_MABX_B.RelationalOperator2_f &&
10750 L4_MABX_B.RelationalOperator4_o);
10751
10752 /* RelationalOperator: '<S213>/Relational Operator' incorporates:
10753 * Constant: '<S213>/IGN_SW_VOLTAGE_THRESHOLD_APV'
10754 */
10755 L4_MABX_B.F_Ignition_sw_on = (L4_MABX_B.IgnitionKeySwitch_voltage >=
10756 L4_MABX_P.IGN_SW_VOLTAGE_THRESHOLD_APV_Va);
10757
10758 /* SignalConversion: '<S220>/TmpSignal ConversionAt SFunction Inport3' incorporates:
10759 * Chart: '<S213>/Relay_control_state_machine'
10760 * Constant: '<S213>/IGN_RELAY_ON_DELAY_SECS_APV'
10761 * Constant: '<S213>/INVERTER_RELAY_ON_DELAY_SECS_APV'
10762 * Constant: '<S213>/MABX_RELAY_ON_DELAY_SECS_APV'
10763 * Constant: '<S213>/SENSOR_RELAY_ON_DELAY_SECS_APV'
10764 */
10765 L4_MABX_B.TmpSignalConversionAtSFunctionI[0] =
10766 L4_MABX_P.IGN_RELAY_ON_DELAY_SECS_APV_Val;
10767 L4_MABX_B.TmpSignalConversionAtSFunctionI[1] =
10768 L4_MABX_P.INVERTER_RELAY_ON_DELAY_SECS_AP;
10769 L4_MABX_B.TmpSignalConversionAtSFunctionI[2] =
10770 L4_MABX_P.MABX_RELAY_ON_DELAY_SECS_APV_Va;
10771 L4_MABX_B.TmpSignalConversionAtSFunctionI[3] =
10772 L4_MABX_P.SENSOR_RELAY_ON_DELAY_SECS_APV_;
10773
10774 /* SignalConversion: '<S220>/TmpSignal ConversionAt SFunction Inport4' incorporates:
10775 * Chart: '<S213>/Relay_control_state_machine'
10776 * Constant: '<S213>/IGN_RELAY_OFF_DELAY_SECS_APV'
10777 * Constant: '<S213>/INVERTER_RELAY_OFF_DELAY_SECS_APV'
10778 * Constant: '<S213>/MABX_RELAY_OFF_DELAY_SECS_APV'
10779 * Constant: '<S213>/SENSOR_RELAY_OFF_DELAY_SECS_APV'
10780 */
10781 L4_MABX_B.TmpSignalConversionAtSFunctio_k[0] =
10782 L4_MABX_P.IGN_RELAY_OFF_DELAY_SECS_APV_Va;
10783 L4_MABX_B.TmpSignalConversionAtSFunctio_k[1] =
10784 L4_MABX_P.INVERTER_RELAY_OFF_DELAY_SECS_A;
10785 L4_MABX_B.TmpSignalConversionAtSFunctio_k[2] =
10786 L4_MABX_P.MABX_RELAY_OFF_DELAY_SECS_APV_V;
10787 L4_MABX_B.TmpSignalConversionAtSFunctio_k[3] =
10788 L4_MABX_P.SENSOR_RELAY_OFF_DELAY_SECS_APV;
10789
10790 /* Chart: '<S213>/Relay_control_state_machine' */
10791 if (L4_MABX_DW.temporalCounter_i1 < MAX_uint32_T) {
10792 L4_MABX_DW.temporalCounter_i1++;
10793 }
10794
10795 /* Gateway: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10796 /* During: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10797 if (L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S == 0U) {
10798 /* Entry: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10799 L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S = 1U;
10800
10801 /* Entry Internal: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10802 /* Transition: '<S220>:13' */
10803 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_INITIAL;
10804 L4_MABX_enter_atomic_INITIAL();
10805 } else {
10806 switch (L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT) {
10807 case L4_MABX_IN_INITIAL:
10808 L4_MABX_B.F_Ignition_relay_command_i = false;
10809 L4_MABX_B.F_Inverter_relay_command_p = false;
10810 L4_MABX_B.F_MABX_relay_command_n = false;
10811 L4_MABX_B.F_Sensor_relay_command_k = false;
10812
10813 /* During 'INITIAL': '<S220>:12' */
10814 if (L4_MABX_B.F_Ignition_sw_on) {
10815 /* Transition: '<S220>:17' */
10816 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_POWER_UP_ROUTINE;
10817
10818 /* Entry Internal 'POWER_UP_ROUTINE': '<S220>:16' */
10819 /* Transition: '<S220>:64' */
10820 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_WAIT;
10821 L4_MABX_DW.temporalCounter_i1 = 0U;
10822 }
10823 break;
10824
10825 case L4_MABX_IN_POWER_DOWN_ROUTINE:
10826 /* During 'POWER_DOWN_ROUTINE': '<S220>:30' */
10827 switch (L4_MABX_DW.is_POWER_DOWN_ROUTINE) {
10828 case L4_MABX_IN_IGN_RELAY_UNLATCH:
10829 L4_MABX_B.F_Ignition_relay_command_i = false;
10830
10831 /* During 'IGN_RELAY_UNLATCH': '<S220>:29' */
10832 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10833 (L4_MABX_DW.INVERTER_RELAY_OFF_DELAY_SECS_A * 100.0)) {
10834 /* Transition: '<S220>:23' */
10835 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_INV_RELAY_UNLATCH;
10836 L4_MABX_DW.temporalCounter_i1 = 0U;
10837
10838 /* Entry 'INV_RELAY_UNLATCH': '<S220>:28' */
10839 L4_MABX_B.F_Inverter_relay_command_p = false;
10840 }
10841 break;
10842
10843 case L4_MABX_IN_INV_RELAY_UNLATCH:
10844 L4_MABX_B.F_Inverter_relay_command_p = false;
10845
10846 /* During 'INV_RELAY_UNLATCH': '<S220>:28' */
10847 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10848 (L4_MABX_DW.SENSOR_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10849 /* Transition: '<S220>:22' */
10850 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_SENSOR_RELAY_UNLATCH;
10851 L4_MABX_DW.temporalCounter_i1 = 0U;
10852
10853 /* Entry 'SENSOR_RELAY_UNLATCH': '<S220>:25' */
10854 L4_MABX_B.F_Sensor_relay_command_k = false;
10855 }
10856 break;
10857
10858 case L4_MABX_IN_MABX_RELAY_UNLATCH:
10859 L4_MABX_B.F_MABX_relay_command_n = false;
10860
10861 /* During 'MABX_RELAY_UNLATCH': '<S220>:27' */
10862 /* Transition: '<S220>:45' */
10863 /* Transition: '<S220>:46' */
10864 /* Transition: '<S220>:47' */
10865 /* Transition: '<S220>:48' */
10866 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
10867 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_INITIAL;
10868 L4_MABX_enter_atomic_INITIAL();
10869 break;
10870
10871 case L4_MABX_IN_SENSOR_RELAY_UNLATCH:
10872 L4_MABX_B.F_Sensor_relay_command_k = false;
10873
10874 /* During 'SENSOR_RELAY_UNLATCH': '<S220>:25' */
10875 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10876 (L4_MABX_DW.MABX_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10877 /* Transition: '<S220>:26' */
10878 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_MABX_RELAY_UNLATCH;
10879
10880 /* Entry 'MABX_RELAY_UNLATCH': '<S220>:27' */
10881 L4_MABX_B.F_MABX_relay_command_n = false;
10882 }
10883 break;
10884
10885 default:
10886 /* During 'WAIT': '<S220>:65' */
10887 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10888 (L4_MABX_DW.IGN_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10889 /* Transition: '<S220>:55' */
10890 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_IGN_RELAY_UNLATCH;
10891 L4_MABX_DW.temporalCounter_i1 = 0U;
10892
10893 /* Entry 'IGN_RELAY_UNLATCH': '<S220>:29' */
10894 L4_MABX_B.F_Ignition_relay_command_i = false;
10895 }
10896 break;
10897 }
10898 break;
10899
10900 default:
10901 /* During 'POWER_UP_ROUTINE': '<S220>:16' */
10902 zcEvent = ((!L4_MABX_B.F_Ignition_sw_on) &&
10903 L4_MABX_B.F_Ignition_sw_off_conditions_me);
10904 if (zcEvent) {
10905 /* Transition: '<S220>:31' */
10906 /* Exit Internal 'POWER_UP_ROUTINE': '<S220>:16' */
10907 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
10908 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT =
10909 L4_MABX_IN_POWER_DOWN_ROUTINE;
10910
10911 /* Entry Internal 'POWER_DOWN_ROUTINE': '<S220>:30' */
10912 /* Transition: '<S220>:66' */
10913 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_WAIT;
10914 L4_MABX_DW.temporalCounter_i1 = 0U;
10915 } else {
10916 switch (L4_MABX_DW.is_POWER_UP_ROUTINE) {
10917 case L4_MABX_IN_IGN_RELAY_LATCH:
10918 L4_MABX_B.F_Ignition_relay_command_i = true;
10919
10920 /* During 'IGN_RELAY_LATCH': '<S220>:20' */
10921 break;
10922
10923 case L4_MABX_IN_INV_RELAY_LATCH:
10924 L4_MABX_B.F_Inverter_relay_command_p = true;
10925
10926 /* During 'INV_RELAY_LATCH': '<S220>:19' */
10927 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10928 (L4_MABX_DW.IGN_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10929 /* Transition: '<S220>:21' */
10930 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_IGN_RELAY_LATCH;
10931
10932 /* Entry 'IGN_RELAY_LATCH': '<S220>:20' */
10933 L4_MABX_B.F_Ignition_relay_command_i = true;
10934 }
10935 break;
10936
10937 case L4_MABX_IN_MABX_RELAY_LATCH:
10938 L4_MABX_B.F_MABX_relay_command_n = true;
10939
10940 /* During 'MABX_RELAY_LATCH': '<S220>:10' */
10941 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10942 (L4_MABX_DW.SENSOR_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10943 /* Transition: '<S220>:15' */
10944 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_SENSOR_RELAY_LATCH;
10945 L4_MABX_DW.temporalCounter_i1 = 0U;
10946
10947 /* Entry 'SENSOR_RELAY_LATCH': '<S220>:14' */
10948 L4_MABX_B.F_Sensor_relay_command_k = true;
10949 }
10950 break;
10951
10952 case L4_MABX_IN_SENSOR_RELAY_LATCH:
10953 L4_MABX_B.F_Sensor_relay_command_k = true;
10954
10955 /* During 'SENSOR_RELAY_LATCH': '<S220>:14' */
10956 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10957 (L4_MABX_DW.INVERTER_RELAY_ON_DELAY_SECS_AP * 100.0)) {
10958 /* Transition: '<S220>:18' */
10959 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_INV_RELAY_LATCH;
10960 L4_MABX_DW.temporalCounter_i1 = 0U;
10961
10962 /* Entry 'INV_RELAY_LATCH': '<S220>:19' */
10963 L4_MABX_B.F_Inverter_relay_command_p = true;
10964 }
10965 break;
10966
10967 default:
10968 /* During 'WAIT': '<S220>:63' */
10969 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10970 (L4_MABX_DW.MABX_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10971 /* Transition: '<S220>:11' */
10972 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_MABX_RELAY_LATCH;
10973 L4_MABX_DW.temporalCounter_i1 = 0U;
10974
10975 /* Entry 'MABX_RELAY_LATCH': '<S220>:10' */
10976 L4_MABX_B.F_MABX_relay_command_n = true;
10977 }
10978 break;
10979 }
10980 }
10981 break;
10982 }
10983 }
10984
10985 /* Lookup_n-D: '<S79>/CurveBasedSpeedSetpoint' incorporates:
10986 * Constant: '<S80>/zero'
10987 */
10988 L4_MABX_B.CurveBasedSpeedSetpoint = look1_binlcapw(L4_MABX_P.zero_Value,
10989 L4_MABX_P.CurveBasedSpeedSetpoint_bp01Dat,
10990 L4_MABX_P.CurveBasedSpeedSetpoint_tableDa, 4U);
10991
10992 /* Lookup_n-D: '<S80>/1-D Lookup Table1' */
10993 L4_MABX_B.uDLookupTable1 = look1_binlxpw(SteerWheelAngle,
10994 L4_MABX_P.uDLookupTable1_bp01Data, L4_MABX_P.uDLookupTable1_tableData, 16U);
10995
10996 /* Product: '<S287>/Divide' incorporates:
10997 * Constant: '<S279>/Constant'
10998 * Constant: '<S279>/Constant1'
10999 */
11000 L4_MABX_B.Divide_nn = (real32_T)(L4_MABX_P.Constant1_Value_i /
11001 L4_MABX_P.Constant_Value_e);
11002
11003 /* DataTypeConversion: '<S80>/Data Type Conversion5' */
11004 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o2_nr);
11005 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
11006 PositionFinalLimited = 0.0;
11007 } else {
11008 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
11009 }
11010
11011 L4_MABX_B.DataTypeConversion5_e3 = (uint8_T)(PositionFinalLimited < 0.0 ?
11012 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
11013 (uint8_T)PositionFinalLimited);
11014
11015 /* End of DataTypeConversion: '<S80>/Data Type Conversion5' */
11016
11017 /* Chart: '<S285>/Chart' */
11018 /* Gateway: STEERCTRL_10ms/slew/Chart */
11019 /* During: STEERCTRL_10ms/slew/Chart */
11020 if (L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ == 0U) {
11021 /* Entry: STEERCTRL_10ms/slew/Chart */
11022 L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ = 1U;
11023
11024 /* Entry Internal: STEERCTRL_10ms/slew/Chart */
11025 /* Transition: '<S335>:4' */
11026 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_h;
11027
11028 /* Entry 'init': '<S335>:1' */
11029 L4_MABX_B.stateChange = 0U;
11030 } else {
11031 switch (L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE) {
11032 case L4_MABX_IN_OneLane:
11033 /* During 'OneLane': '<S335>:7' */
11034 /* Transition: '<S335>:20' */
11035 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_OneLane1;
11036
11037 /* Entry 'OneLane1': '<S335>:18' */
11038 L4_MABX_B.stateChange = 0U;
11039 break;
11040
11041 case L4_MABX_IN_OneLane1:
11042 L4_MABX_B.stateChange = 0U;
11043
11044 /* During 'OneLane1': '<S335>:18' */
11045 zcEvent = ((L4_MABX_B.DataTypeConversion5_e3 < 3) ||
11046 (L4_MABX_B.DataTypeConversion5_e3 > 18));
11047 if (zcEvent) {
11048 /* Transition: '<S335>:22' */
11049 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_h;
11050
11051 /* Entry 'init': '<S335>:1' */
11052 L4_MABX_B.stateChange = 0U;
11053 }
11054 break;
11055
11056 case L4_MABX_IN_TwoLanes:
11057 /* During 'TwoLanes': '<S335>:8' */
11058 /* Transition: '<S335>:21' */
11059 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_TwoLanes1;
11060
11061 /* Entry 'TwoLanes1': '<S335>:19' */
11062 L4_MABX_B.stateChange = 0U;
11063 break;
11064
11065 case L4_MABX_IN_TwoLanes1:
11066 L4_MABX_B.stateChange = 0U;
11067
11068 /* During 'TwoLanes1': '<S335>:19' */
11069 if (L4_MABX_B.DataTypeConversion5_e3 < 18) {
11070 /* Transition: '<S335>:23' */
11071 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_h;
11072
11073 /* Entry 'init': '<S335>:1' */
11074 L4_MABX_B.stateChange = 0U;
11075 }
11076 break;
11077
11078 case L4_MABX_IN_ZeroLanes:
11079 /* During 'ZeroLanes': '<S335>:5' */
11080 /* Transition: '<S335>:16' */
11081 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_ZeroLanes1;
11082
11083 /* Entry 'ZeroLanes1': '<S335>:15' */
11084 L4_MABX_B.stateChange = 0U;
11085 break;
11086
11087 case L4_MABX_IN_ZeroLanes1:
11088 L4_MABX_B.stateChange = 0U;
11089
11090 /* During 'ZeroLanes1': '<S335>:15' */
11091 if (L4_MABX_B.DataTypeConversion5_e3 > 3) {
11092 /* Transition: '<S335>:17' */
11093 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_h;
11094
11095 /* Entry 'init': '<S335>:1' */
11096 L4_MABX_B.stateChange = 0U;
11097 }
11098 break;
11099
11100 default:
11101 L4_MABX_B.stateChange = 0U;
11102
11103 /* During 'init': '<S335>:1' */
11104 if (L4_MABX_B.DataTypeConversion5_e3 <= 3) {
11105 /* Transition: '<S335>:6' */
11106 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_ZeroLanes;
11107
11108 /* Entry 'ZeroLanes': '<S335>:5' */
11109 L4_MABX_B.stateChange = 1U;
11110 } else if (L4_MABX_B.DataTypeConversion5_e3 > 18) {
11111 /* Transition: '<S335>:9' */
11112 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_TwoLanes;
11113
11114 /* Entry 'TwoLanes': '<S335>:8' */
11115 L4_MABX_B.stateChange = 1U;
11116 } else {
11117 if (L4_MABX_B.DataTypeConversion5_e3 > 3) {
11118 /* Transition: '<S335>:10' */
11119 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_OneLane;
11120
11121 /* Entry 'OneLane': '<S335>:7' */
11122 L4_MABX_B.stateChange = 1U;
11123 }
11124 }
11125 break;
11126 }
11127 }
11128
11129 /* End of Chart: '<S285>/Chart' */
11130
11131 /* DataTypeConversion: '<S285>/Data Type Conversion' */
11132 L4_MABX_B.DataTypeConversion_l1 = (L4_MABX_B.stateChange != 0);
11133
11134 /* UnitDelay: '<S329>/Unit_Delay1' */
11135 L4_MABX_B.Unit_Delay1_j = L4_MABX_DW.Unit_Delay1_DSTATE_db;
11136
11137 /* Logic: '<S329>/Logical Operator' incorporates:
11138 * Constant: '<S284>/zero'
11139 */
11140 L4_MABX_B.LogicalOperator_kh = (L4_MABX_P.zero_Value_g ||
11141 L4_MABX_B.Unit_Delay1_j);
11142
11143 /* MinMax: '<S329>/MinMax1' incorporates:
11144 * Constant: '<S284>/timeConstant'
11145 * Constant: '<S284>/timeConstant1'
11146 */
11147 DeltaTime = L4_MABX_P.timeConstant1_Value;
11148 PositionFinalLimited = L4_MABX_P.timeConstant_Value;
11149 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11150 PositionFinalLimited = DeltaTime;
11151 }
11152
11153 L4_MABX_B.MinMax1_pr = PositionFinalLimited;
11154
11155 /* End of MinMax: '<S329>/MinMax1' */
11156
11157 /* Saturate: '<S329>/Saturation' */
11158 DeltaTime = L4_MABX_B.MinMax1_pr;
11159 Time56 = L4_MABX_P.Saturation_LowerSat_p2;
11160 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_o1;
11161 if (DeltaTime > PositionFinalLimited) {
11162 L4_MABX_B.Saturation_ns = PositionFinalLimited;
11163 } else if (DeltaTime < Time56) {
11164 L4_MABX_B.Saturation_ns = Time56;
11165 } else {
11166 L4_MABX_B.Saturation_ns = DeltaTime;
11167 }
11168
11169 /* End of Saturate: '<S329>/Saturation' */
11170
11171 /* Product: '<S329>/Divide' incorporates:
11172 * Constant: '<S284>/timeConstant1'
11173 */
11174 L4_MABX_B.Divide_o = L4_MABX_P.timeConstant1_Value / L4_MABX_B.Saturation_ns;
11175
11176 /* Product: '<S329>/Product2' */
11177 L4_MABX_B.Product2_b = L4_MABX_B.SFunction1_o3_km * L4_MABX_B.Divide_o;
11178
11179 /* Sum: '<S329>/Subtract1' incorporates:
11180 * Constant: '<S329>/Constant1'
11181 */
11182 L4_MABX_B.Subtract1_ei = L4_MABX_P.Constant1_Value_n - L4_MABX_B.Divide_o;
11183
11184 /* UnitDelay: '<S329>/Unit_Delay2' */
11185 L4_MABX_B.Unit_Delay2_k = L4_MABX_DW.Unit_Delay2_DSTATE_d;
11186
11187 /* Product: '<S329>/Product1' */
11188 L4_MABX_B.Product1_n = L4_MABX_B.Subtract1_ei * L4_MABX_B.Unit_Delay2_k;
11189
11190 /* Sum: '<S329>/Add1' */
11191 L4_MABX_B.Add1_k = L4_MABX_B.Product2_b + L4_MABX_B.Product1_n;
11192
11193 /* Outputs for Atomic SubSystem: '<S329>/If_Then_Else' */
11194 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_kh, L4_MABX_B.SFunction1_o3_km,
11195 L4_MABX_B.Add1_k, &L4_MABX_B.If_Then_Else_b3);
11196
11197 /* End of Outputs for SubSystem: '<S329>/If_Then_Else' */
11198
11199 /* Abs: '<S284>/Abs' */
11200 L4_MABX_B.Abs_i = fabs(L4_MABX_B.SFunction1_o3_km);
11201
11202 /* Sum: '<S284>/Add' */
11203 L4_MABX_B.Add_p = L4_MABX_B.Abs_i - L4_MABX_B.If_Then_Else_b3.Switch;
11204
11205 /* RelationalOperator: '<S284>/highRateOfChange' incorporates:
11206 * Constant: '<S284>/rateOfChangeThreshold'
11207 */
11208 L4_MABX_B.highRateOfChange = (L4_MABX_B.Add_p >
11209 L4_MABX_P.rateOfChangeThreshold_Value);
11210
11211 /* RelationalOperator: '<S284>/closeToEdge' incorporates:
11212 * Constant: '<S284>/closeToLaneEdgeThreshold'
11213 */
11214 L4_MABX_B.closeToEdge = (L4_MABX_B.Abs_i >
11215 L4_MABX_P.closeToLaneEdgeThreshold_Value);
11216
11217 /* Logic: '<S284>/JumpNearEdge' */
11218 L4_MABX_B.JumpNearEdge = (L4_MABX_B.highRateOfChange && L4_MABX_B.closeToEdge);
11219
11220 /* UnitDelay: '<S328>/Delay Input1' */
11221 L4_MABX_B.Uk1_k2 = L4_MABX_DW.DelayInput1_DSTATE_f0;
11222
11223 /* RelationalOperator: '<S328>/FixPt Relational Operator' */
11224 L4_MABX_B.FixPtRelationalOperator_iv = (L4_MABX_B.JumpNearEdge !=
11225 L4_MABX_B.Uk1_k2);
11226
11227 /* DataTypeConversion: '<S284>/Data Type Conversion' */
11228 L4_MABX_B.DataTypeConversion_dz = L4_MABX_B.FixPtRelationalOperator_iv;
11229
11230 /* UnitDelay: '<S330>/Unit_Delay1' */
11231 L4_MABX_B.Unit_Delay1_f = L4_MABX_DW.Unit_Delay1_DSTATE_as;
11232
11233 /* Logic: '<S330>/Logical Operator' */
11234 L4_MABX_B.LogicalOperator_a = (L4_MABX_B.DataTypeConversion_dz ||
11235 L4_MABX_B.Unit_Delay1_f);
11236
11237 /* Switch: '<S284>/Switch' incorporates:
11238 * Constant: '<S284>/correction'
11239 * Constant: '<S284>/zero1'
11240 */
11241 if (L4_MABX_B.JumpNearEdge) {
11242 L4_MABX_B.Switch_g = L4_MABX_P.correction_Value;
11243 } else {
11244 L4_MABX_B.Switch_g = L4_MABX_P.zero1_Value;
11245 }
11246
11247 /* End of Switch: '<S284>/Switch' */
11248
11249 /* MinMax: '<S330>/MinMax1' incorporates:
11250 * Constant: '<S284>/timeConstant2'
11251 * Constant: '<S284>/timeConstant3'
11252 */
11253 DeltaTime = L4_MABX_P.timeConstant3_Value;
11254 PositionFinalLimited = L4_MABX_P.timeConstant2_Value;
11255 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11256 PositionFinalLimited = DeltaTime;
11257 }
11258
11259 L4_MABX_B.MinMax1_a = PositionFinalLimited;
11260
11261 /* End of MinMax: '<S330>/MinMax1' */
11262
11263 /* Saturate: '<S330>/Saturation' */
11264 DeltaTime = L4_MABX_B.MinMax1_a;
11265 Time56 = L4_MABX_P.Saturation_LowerSat_ph;
11266 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_d;
11267 if (DeltaTime > PositionFinalLimited) {
11268 L4_MABX_B.Saturation_e = PositionFinalLimited;
11269 } else if (DeltaTime < Time56) {
11270 L4_MABX_B.Saturation_e = Time56;
11271 } else {
11272 L4_MABX_B.Saturation_e = DeltaTime;
11273 }
11274
11275 /* End of Saturate: '<S330>/Saturation' */
11276
11277 /* Product: '<S330>/Divide' incorporates:
11278 * Constant: '<S284>/timeConstant3'
11279 */
11280 L4_MABX_B.Divide_d = L4_MABX_P.timeConstant3_Value / L4_MABX_B.Saturation_e;
11281
11282 /* Product: '<S330>/Product2' */
11283 L4_MABX_B.Product2_f = L4_MABX_B.Switch_g * L4_MABX_B.Divide_d;
11284
11285 /* Sum: '<S330>/Subtract1' incorporates:
11286 * Constant: '<S330>/Constant1'
11287 */
11288 L4_MABX_B.Subtract1_b = L4_MABX_P.Constant1_Value_j - L4_MABX_B.Divide_d;
11289
11290 /* UnitDelay: '<S330>/Unit_Delay2' */
11291 L4_MABX_B.Unit_Delay2_l = L4_MABX_DW.Unit_Delay2_DSTATE_i;
11292
11293 /* Product: '<S330>/Product1' */
11294 L4_MABX_B.Product1_c = L4_MABX_B.Subtract1_b * L4_MABX_B.Unit_Delay2_l;
11295
11296 /* Sum: '<S330>/Add1' */
11297 L4_MABX_B.Add1_pt = L4_MABX_B.Product2_f + L4_MABX_B.Product1_c;
11298
11299 /* Outputs for Atomic SubSystem: '<S330>/If_Then_Else' */
11300
11301 /* Constant: '<S284>/zero2' */
11302 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_a, L4_MABX_P.zero2_Value,
11303 L4_MABX_B.Add1_pt, &L4_MABX_B.If_Then_Else_mk);
11304
11305 /* End of Outputs for SubSystem: '<S330>/If_Then_Else' */
11306
11307 /* Signum: '<S284>/Sign' */
11308 PositionFinalLimited = L4_MABX_B.SFunction1_o3_km;
11309 if (PositionFinalLimited < 0.0) {
11310 L4_MABX_B.Sign = -1.0;
11311 } else if (PositionFinalLimited > 0.0) {
11312 L4_MABX_B.Sign = 1.0;
11313 } else if (PositionFinalLimited == 0.0) {
11314 L4_MABX_B.Sign = 0.0;
11315 } else {
11316 L4_MABX_B.Sign = (rtNaN);
11317 }
11318
11319 /* End of Signum: '<S284>/Sign' */
11320
11321 /* Product: '<S284>/Product' */
11322 L4_MABX_B.Product_cf = L4_MABX_B.If_Then_Else_mk.Switch * L4_MABX_B.Sign;
11323
11324 /* UnitDelay: '<S331>/Unit_Delay1' */
11325 L4_MABX_B.Unit_Delay1_d = L4_MABX_DW.Unit_Delay1_DSTATE_p;
11326
11327 /* Logic: '<S331>/Logical Operator' incorporates:
11328 * Constant: '<S284>/zero3'
11329 */
11330 L4_MABX_B.LogicalOperator_nz = (L4_MABX_P.zero3_Value ||
11331 L4_MABX_B.Unit_Delay1_d);
11332
11333 /* MinMax: '<S331>/MinMax1' incorporates:
11334 * Constant: '<S284>/timeConstant4'
11335 * Constant: '<S284>/timeConstant5'
11336 */
11337 DeltaTime = L4_MABX_P.timeConstant5_Value;
11338 PositionFinalLimited = L4_MABX_P.timeConstant4_Value;
11339 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11340 PositionFinalLimited = DeltaTime;
11341 }
11342
11343 L4_MABX_B.MinMax1_e = PositionFinalLimited;
11344
11345 /* End of MinMax: '<S331>/MinMax1' */
11346
11347 /* Saturate: '<S331>/Saturation' */
11348 DeltaTime = L4_MABX_B.MinMax1_e;
11349 Time56 = L4_MABX_P.Saturation_LowerSat_k;
11350 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_ok;
11351 if (DeltaTime > PositionFinalLimited) {
11352 L4_MABX_B.Saturation_o = PositionFinalLimited;
11353 } else if (DeltaTime < Time56) {
11354 L4_MABX_B.Saturation_o = Time56;
11355 } else {
11356 L4_MABX_B.Saturation_o = DeltaTime;
11357 }
11358
11359 /* End of Saturate: '<S331>/Saturation' */
11360
11361 /* Product: '<S331>/Divide' incorporates:
11362 * Constant: '<S284>/timeConstant5'
11363 */
11364 L4_MABX_B.Divide_j = L4_MABX_P.timeConstant5_Value / L4_MABX_B.Saturation_o;
11365
11366 /* Product: '<S331>/Product2' */
11367 L4_MABX_B.Product2_nk = L4_MABX_B.SFunction1_o3_km * L4_MABX_B.Divide_j;
11368
11369 /* Sum: '<S331>/Subtract1' incorporates:
11370 * Constant: '<S331>/Constant1'
11371 */
11372 L4_MABX_B.Subtract1_eh = L4_MABX_P.Constant1_Value_oi - L4_MABX_B.Divide_j;
11373
11374 /* UnitDelay: '<S331>/Unit_Delay2' */
11375 L4_MABX_B.Unit_Delay2_c = L4_MABX_DW.Unit_Delay2_DSTATE_p;
11376
11377 /* Product: '<S331>/Product1' */
11378 L4_MABX_B.Product1_cc = L4_MABX_B.Subtract1_eh * L4_MABX_B.Unit_Delay2_c;
11379
11380 /* Sum: '<S331>/Add1' */
11381 L4_MABX_B.Add1_f = L4_MABX_B.Product2_nk + L4_MABX_B.Product1_cc;
11382
11383 /* Outputs for Atomic SubSystem: '<S331>/If_Then_Else' */
11384 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_nz, L4_MABX_B.SFunction1_o3_km,
11385 L4_MABX_B.Add1_f, &L4_MABX_B.If_Then_Else_lh);
11386
11387 /* End of Outputs for SubSystem: '<S331>/If_Then_Else' */
11388
11389 /* Switch: '<S284>/Switch1' */
11390 if (L4_MABX_B.JumpNearEdge) {
11391 L4_MABX_B.Switch1_f = L4_MABX_B.If_Then_Else_lh.Switch;
11392 } else {
11393 L4_MABX_B.Switch1_f = L4_MABX_B.SFunction1_o3_km;
11394 }
11395
11396 /* End of Switch: '<S284>/Switch1' */
11397
11398 /* Sum: '<S284>/corrected Error' */
11399 L4_MABX_B.correctedError = L4_MABX_B.Product_cf + L4_MABX_B.Switch1_f;
11400
11401 /* RelationalOperator: '<S285>/Relational Operator' incorporates:
11402 * Constant: '<S285>/Constant'
11403 */
11404 L4_MABX_B.RelationalOperator_l5 = (L4_MABX_B.DataTypeConversion5_e3 >=
11405 L4_MABX_P.Constant_Value_mg);
11406
11407 /* Switch: '<S285>/Switch' incorporates:
11408 * Constant: '<S285>/Constant1'
11409 */
11410 if (L4_MABX_B.RelationalOperator_l5) {
11411 L4_MABX_B.Switch_h = L4_MABX_B.correctedError;
11412 } else {
11413 L4_MABX_B.Switch_h = L4_MABX_P.Constant1_Value_l;
11414 }
11415
11416 /* End of Switch: '<S285>/Switch' */
11417
11418 /* Outputs for Enabled SubSystem: '<S285>/Slew_at_event' incorporates:
11419 * EnablePort: '<S336>/Enable'
11420 */
11421 /* Constant: '<S285>/enable' */
11422 if (L4_MABX_P.enable_Value > 0.0) {
11423 if (!L4_MABX_DW.Slew_at_event_MODE_d) {
11424 /* InitializeConditions for UnitDelay: '<S338>/Unit_Delay' */
11425 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_P.Unit_Delay_InitialCondition_ls;
11426
11427 /* InitializeConditions for UnitDelay: '<S339>/Unit_Delay' */
11428 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Unit_Delay_InitialCondition_i0;
11429
11430 /* InitializeConditions for UnitDelay: '<S342>/FixPt Unit Delay2' */
11431 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j =
11432 L4_MABX_P.FixPtUnitDelay2_InitialCondit_c;
11433
11434 /* InitializeConditions for UnitDelay: '<S342>/FixPt Unit Delay1' */
11435 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o =
11436 L4_MABX_P.FixPtUnitDelay1_InitialCondit_f;
11437
11438 /* InitializeConditions for UnitDelay: '<S337>/Unit_Delay' */
11439 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_P.Unit_Delay_InitialCondition_ld;
11440 L4_MABX_DW.Slew_at_event_MODE_d = true;
11441 }
11442
11443 /* UnitDelay: '<S338>/Unit_Delay' */
11444 L4_MABX_B.Unit_Delay_o3 = L4_MABX_DW.Unit_Delay_DSTATE_bd;
11445
11446 /* Logic: '<S338>/Logical Operator1' */
11447 L4_MABX_B.LogicalOperator1_gw = !L4_MABX_B.Unit_Delay_o3;
11448
11449 /* Logic: '<S338>/Logical Operator' */
11450 L4_MABX_B.LogicalOperator_d2 = (L4_MABX_B.DataTypeConversion_l1 &&
11451 L4_MABX_B.LogicalOperator1_gw);
11452
11453 /* UnitDelay: '<S339>/Unit_Delay' */
11454 L4_MABX_B.Unit_Delay_hj = L4_MABX_DW.Unit_Delay_DSTATE_jt;
11455
11456 /* Logic: '<S339>/Logical Operator1' */
11457 L4_MABX_B.LogicalOperator1_h = (L4_MABX_B.LogicalOperator_d2 ||
11458 L4_MABX_B.Unit_Delay_hj);
11459
11460 /* UnitDelay: '<S342>/FixPt Unit Delay2' */
11461 L4_MABX_B.FixPtUnitDelay2_h = L4_MABX_DW.FixPtUnitDelay2_DSTATE_j;
11462
11463 /* UnitDelay: '<S342>/FixPt Unit Delay1' */
11464 L4_MABX_B.Xold_g = L4_MABX_DW.FixPtUnitDelay1_DSTATE_o;
11465
11466 /* Switch: '<S342>/Init' */
11467 if (L4_MABX_B.FixPtUnitDelay2_h != 0) {
11468 L4_MABX_B.Init_jw = L4_MABX_B.Switch_h;
11469 } else {
11470 L4_MABX_B.Init_jw = L4_MABX_B.Xold_g;
11471 }
11472
11473 /* End of Switch: '<S342>/Init' */
11474
11475 /* Abs: '<S339>/Abs' incorporates:
11476 * Constant: '<S285>/Constant3'
11477 */
11478 L4_MABX_B.Abs_a = fabs(L4_MABX_P.Constant3_Value_j);
11479
11480 /* Product: '<S339>/Product1' incorporates:
11481 * Constant: '<S285>/Constant2'
11482 */
11483 L4_MABX_B.Product1_i3 = L4_MABX_B.Abs_a * L4_MABX_P.Constant2_Value_p;
11484
11485 /* Sum: '<S339>/Add1' */
11486 L4_MABX_B.Add1_b0 = L4_MABX_B.Init_jw + L4_MABX_B.Product1_i3;
11487
11488 /* MinMax: '<S339>/MinMax2' */
11489 DeltaTime = L4_MABX_B.Switch_h;
11490 PositionFinalLimited = L4_MABX_B.Add1_b0;
11491 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11492 PositionFinalLimited = DeltaTime;
11493 }
11494
11495 L4_MABX_B.MinMax2_l = PositionFinalLimited;
11496
11497 /* End of MinMax: '<S339>/MinMax2' */
11498
11499 /* Abs: '<S339>/Abs1' incorporates:
11500 * Constant: '<S285>/Constant4'
11501 */
11502 L4_MABX_B.Abs1_e = fabs(L4_MABX_P.Constant4_Value_bq);
11503
11504 /* Product: '<S339>/Product2' incorporates:
11505 * Constant: '<S285>/Constant2'
11506 */
11507 L4_MABX_B.Product2_k = L4_MABX_P.Constant2_Value_p * L4_MABX_B.Abs1_e;
11508
11509 /* Sum: '<S339>/Subtract1' */
11510 L4_MABX_B.Subtract1_g = L4_MABX_B.Init_jw - L4_MABX_B.Product2_k;
11511
11512 /* MinMax: '<S339>/MinMax1' */
11513 DeltaTime = L4_MABX_B.MinMax2_l;
11514 PositionFinalLimited = L4_MABX_B.Subtract1_g;
11515 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11516 PositionFinalLimited = DeltaTime;
11517 }
11518
11519 L4_MABX_B.MinMax1_k = PositionFinalLimited;
11520
11521 /* End of MinMax: '<S339>/MinMax1' */
11522
11523 /* Outputs for Atomic SubSystem: '<S339>/If_Then_Else' */
11524 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_h, L4_MABX_B.Switch_h,
11525 L4_MABX_B.MinMax1_k, &L4_MABX_B.If_Then_Else_n3);
11526
11527 /* End of Outputs for SubSystem: '<S339>/If_Then_Else' */
11528
11529 /* Sum: '<S336>/Subtract' */
11530 L4_MABX_B.Subtract_ij = L4_MABX_B.Switch_h -
11531 L4_MABX_B.If_Then_Else_n3.Switch;
11532
11533 /* Abs: '<S336>/Abs' */
11534 L4_MABX_B.Abs_eu = fabs(L4_MABX_B.Subtract_ij);
11535
11536 /* RelationalOperator: '<S336>/Relational Operator1' incorporates:
11537 * Constant: '<S336>/Constant1'
11538 */
11539 L4_MABX_B.RelationalOperator1_e = (L4_MABX_B.Abs_eu <=
11540 L4_MABX_P.Constant1_Value_ah);
11541
11542 /* Logic: '<S337>/Logical Operator3' */
11543 L4_MABX_B.LogicalOperator3_ar = !L4_MABX_B.RelationalOperator1_e;
11544
11545 /* UnitDelay: '<S337>/Unit_Delay' */
11546 L4_MABX_B.Unit_Delay_ig = L4_MABX_DW.Unit_Delay_DSTATE_ll;
11547
11548 /* Logic: '<S337>/Logical Operator1' */
11549 L4_MABX_B.LogicalOperator1_joh = (L4_MABX_B.DataTypeConversion_l1 ||
11550 L4_MABX_B.Unit_Delay_ig);
11551
11552 /* Logic: '<S337>/Logical Operator' */
11553 L4_MABX_B.LogicalOperator_dm = (L4_MABX_B.LogicalOperator3_ar &&
11554 L4_MABX_B.LogicalOperator1_joh);
11555
11556 /* Logic: '<S337>/Logical Operator2' */
11557 L4_MABX_B.LogicalOperator2_j = !L4_MABX_B.LogicalOperator_dm;
11558
11559 /* RelationalOperator: '<S340>/min_relop' incorporates:
11560 * Constant: '<S285>/Constant3'
11561 * Constant: '<S340>/min_val'
11562 */
11563 L4_MABX_B.min_relop_d = (L4_MABX_P.CheckStaticLowerBound_min_n <=
11564 L4_MABX_P.Constant3_Value_j);
11565
11566 /* Assertion: '<S340>/Assertion' */
11567 utAssert(L4_MABX_B.min_relop_d);
11568 } else {
11569 if (L4_MABX_DW.Slew_at_event_MODE_d) {
11570 /* Disable for Outport: '<S336>/F_Out_slewing' */
11571 L4_MABX_B.LogicalOperator_dm = L4_MABX_P.F_Out_slewing_Y0;
11572
11573 /* Disable for Outport: '<S336>/Out' */
11574 L4_MABX_B.If_Then_Else_n3.Switch = L4_MABX_P.Out_Y0;
11575 L4_MABX_DW.Slew_at_event_MODE_d = false;
11576 }
11577 }
11578
11579 /* End of Constant: '<S285>/enable' */
11580 /* End of Outputs for SubSystem: '<S285>/Slew_at_event' */
11581
11582 /* Switch: '<S285>/Switch1' incorporates:
11583 * Constant: '<S285>/enableSlew'
11584 */
11585 if (L4_MABX_P.enableSlew_Value != 0.0) {
11586 L4_MABX_B.Switch1_j = L4_MABX_B.If_Then_Else_n3.Switch;
11587 } else {
11588 L4_MABX_B.Switch1_j = L4_MABX_B.Switch_h;
11589 }
11590
11591 /* End of Switch: '<S285>/Switch1' */
11592
11593 /* Gain: '<S80>/sign' */
11594 L4_MABX_B.SteerCtrlErrRaw = L4_MABX_P.sign_Gain * L4_MABX_B.Switch1_j;
11595
11596 /* DataTypeConversion: '<S80>/Data Type Conversion1' */
11597 L4_MABX_B.DataTypeConversion1_ev = L4_MABX_B.SteerCtrlErrRaw;
11598
11599 /* UnitDelay: '<S287>/Unit Delay' */
11600 L4_MABX_B.UnitDelay_fm = L4_MABX_DW.UnitDelay_DSTATE_d;
11601
11602 /* Switch: '<S291>/Switch1' incorporates:
11603 * Constant: '<S287>/E'
11604 * Constant: '<S287>/R'
11605 * Switch: '<S289>/Switch1'
11606 */
11607 if (L4_MABX_P.R_Value) {
11608 /* DataTypeConversion: '<S287>/Data Type Conversion1' incorporates:
11609 * Constant: '<S287>/IV'
11610 */
11611 L4_MABX_B.DataTypeConversion1_b1 = (real32_T)L4_MABX_P.IV_Value;
11612 L4_MABX_B.Switch1_fi = L4_MABX_B.DataTypeConversion1_b1;
11613 } else {
11614 if (L4_MABX_P.E_Value_j) {
11615 /* DataTypeConversion: '<S287>/Data Type Conversion' incorporates:
11616 * Switch: '<S289>/Switch1'
11617 */
11618 L4_MABX_B.DataTypeConversion_ps = (real32_T)
11619 L4_MABX_B.DataTypeConversion1_ev;
11620
11621 /* Sum: '<S287>/Add3' incorporates:
11622 * Switch: '<S289>/Switch1'
11623 */
11624 L4_MABX_B.Add3_j = L4_MABX_B.DataTypeConversion_ps -
11625 L4_MABX_B.UnitDelay_fm;
11626
11627 /* Product: '<S287>/Product1' incorporates:
11628 * Switch: '<S289>/Switch1'
11629 */
11630 L4_MABX_B.Product1_n2 = L4_MABX_B.Divide_nn * L4_MABX_B.Add3_j;
11631
11632 /* Sum: '<S287>/Add' incorporates:
11633 * Switch: '<S289>/Switch1'
11634 */
11635 L4_MABX_B.Add_f = L4_MABX_B.Product1_n2 + L4_MABX_B.UnitDelay_fm;
11636
11637 /* Switch: '<S289>/Switch1' */
11638 L4_MABX_B.Switch1_cw = L4_MABX_B.Add_f;
11639 } else {
11640 /* Switch: '<S289>/Switch1' */
11641 L4_MABX_B.Switch1_cw = L4_MABX_B.UnitDelay_fm;
11642 }
11643
11644 L4_MABX_B.Switch1_fi = L4_MABX_B.Switch1_cw;
11645 }
11646
11647 /* End of Switch: '<S291>/Switch1' */
11648
11649 /* DataTypeConversion: '<S288>/Conversion' */
11650 L4_MABX_B.Conversion = L4_MABX_B.Switch1_fi;
11651
11652 /* Abs: '<S80>/Abs' */
11653 L4_MABX_B.Abs_d = fabs(L4_MABX_B.Conversion);
11654
11655 /* Lookup_n-D: '<S80>/SteeringControlPGainErrorBased' */
11656 L4_MABX_B.SteeringControlPGainErrorBased = look1_binlxpw(L4_MABX_B.Abs_d,
11657 L4_MABX_P.SteeringControlPGainErrorBase_n,
11658 L4_MABX_P.SteeringControlPGainErrorBased_, 9U);
11659
11660 /* DataTypeConversion: '<S80>/Data Type Conversion' */
11661 L4_MABX_B.DataTypeConversion_k = L4_MABX_B.SFunction1_o1_loi;
11662
11663 /* Lookup_n-D: '<S80>/SteeringControlPGainSpeedFactor' */
11664 L4_MABX_B.SteeringControlPGainSpeedFactor = look1_binlxpw
11665 (L4_MABX_B.DataTypeConversion_k, L4_MABX_P.SteeringControlPGainSpeedFact_i,
11666 L4_MABX_P.SteeringControlPGainSpeedFactor, 8U);
11667
11668 /* Product: '<S80>/Product1' */
11669 L4_MABX_B.SteerCtrlPgain = L4_MABX_B.SteeringControlPGainErrorBased *
11670 L4_MABX_B.SteeringControlPGainSpeedFactor;
11671
11672 /* Gain: '<S80>/Gain' */
11673 L4_MABX_B.Gain_c = L4_MABX_P.Gain_Gain_m * L4_MABX_B.SteerCtrlPgain;
11674
11675 /* Product: '<S298>/Product' */
11676 L4_MABX_B.Product_d = L4_MABX_B.Conversion * L4_MABX_B.Gain_c;
11677
11678 /* Product: '<S298>/Divide' incorporates:
11679 * Constant: '<S281>/Constant21'
11680 * Constant: '<S281>/SteeringControlIntGain'
11681 */
11682 L4_MABX_B.Divide_ag = L4_MABX_P.Constant21_Value /
11683 L4_MABX_P.SteeringControlIntGain_Value;
11684
11685 /* Product: '<S298>/Product1' */
11686 L4_MABX_B.Product1_hr = L4_MABX_B.Product_d * L4_MABX_B.Divide_ag;
11687
11688 /* UnitDelay: '<S297>/Unit Delay' */
11689 L4_MABX_B.UnitDelay_m = L4_MABX_DW.UnitDelay_DSTATE_m;
11690
11691 /* RelationalOperator: '<S297>/Relational Operator' incorporates:
11692 * Constant: '<S281>/Constant19'
11693 */
11694 L4_MABX_B.RelationalOperator_d = (L4_MABX_B.UnitDelay_m >=
11695 L4_MABX_P.Constant19_Value);
11696
11697 /* Switch: '<S297>/Switch' incorporates:
11698 * Constant: '<S297>/Constant3'
11699 */
11700 if (L4_MABX_B.RelationalOperator_d) {
11701 L4_MABX_B.Switch_ov = L4_MABX_P.Constant3_Value_pw;
11702 } else {
11703 /* RelationalOperator: '<S297>/Relational Operator1' incorporates:
11704 * Constant: '<S281>/Constant20'
11705 */
11706 L4_MABX_B.RelationalOperator1_mf = (L4_MABX_B.UnitDelay_m <=
11707 L4_MABX_P.Constant20_Value);
11708
11709 /* Switch: '<S297>/Switch1' incorporates:
11710 * Constant: '<S297>/Constant'
11711 * Constant: '<S297>/Constant2'
11712 */
11713 if (L4_MABX_B.RelationalOperator1_mf) {
11714 L4_MABX_B.Switch1_m = L4_MABX_P.Constant2_Value_hu;
11715 } else {
11716 L4_MABX_B.Switch1_m = L4_MABX_P.Constant_Value_i;
11717 }
11718
11719 /* End of Switch: '<S297>/Switch1' */
11720 L4_MABX_B.Switch_ov = L4_MABX_B.Switch1_m;
11721 }
11722
11723 /* End of Switch: '<S297>/Switch' */
11724
11725 /* RelationalOperator: '<S300>/Relational Operator5' incorporates:
11726 * Constant: '<S300>/Constant5'
11727 */
11728 L4_MABX_B.RelationalOperator5_f = (L4_MABX_B.Switch_ov !=
11729 L4_MABX_P.Constant5_Value_o);
11730
11731 /* Signum: '<S300>/Sign1' */
11732 PositionFinalLimited = L4_MABX_B.Product1_hr;
11733 if (PositionFinalLimited < 0.0) {
11734 L4_MABX_B.Sign1 = -1.0;
11735 } else if (PositionFinalLimited > 0.0) {
11736 L4_MABX_B.Sign1 = 1.0;
11737 } else if (PositionFinalLimited == 0.0) {
11738 L4_MABX_B.Sign1 = 0.0;
11739 } else {
11740 L4_MABX_B.Sign1 = (rtNaN);
11741 }
11742
11743 /* End of Signum: '<S300>/Sign1' */
11744
11745 /* RelationalOperator: '<S300>/Relational Operator4' incorporates:
11746 * Constant: '<S300>/Constant4'
11747 */
11748 L4_MABX_B.RelationalOperator4_la = (L4_MABX_P.Constant4_Value_j ==
11749 L4_MABX_B.Sign1);
11750
11751 /* RelationalOperator: '<S300>/Relational Operator2' incorporates:
11752 * Constant: '<S300>/Constant2'
11753 */
11754 L4_MABX_B.RelationalOperator2_o = (L4_MABX_B.Switch_ov !=
11755 L4_MABX_P.Constant2_Value_g);
11756
11757 /* Logic: '<S300>/Logical Operator1' */
11758 L4_MABX_B.LogicalOperator1_ji = (L4_MABX_B.RelationalOperator4_la &&
11759 L4_MABX_B.RelationalOperator2_o);
11760
11761 /* RelationalOperator: '<S300>/Relational Operator1' incorporates:
11762 * Constant: '<S300>/Constant1'
11763 */
11764 L4_MABX_B.RelationalOperator1_ie = (L4_MABX_B.Switch_ov !=
11765 L4_MABX_P.Constant1_Value_ly);
11766
11767 /* RelationalOperator: '<S300>/Relational Operator3' incorporates:
11768 * Constant: '<S300>/Constant3'
11769 */
11770 L4_MABX_B.RelationalOperator3_p = (L4_MABX_P.Constant3_Value_g ==
11771 L4_MABX_B.Sign1);
11772
11773 /* Logic: '<S300>/Logical Operator2' */
11774 L4_MABX_B.LogicalOperator2_o = (L4_MABX_B.RelationalOperator1_ie &&
11775 L4_MABX_B.RelationalOperator3_p);
11776
11777 /* Logic: '<S300>/Logical Operator' */
11778 L4_MABX_B.LogicalOperator_bs = (L4_MABX_B.LogicalOperator1_ji ||
11779 L4_MABX_B.LogicalOperator2_o);
11780
11781 /* Logic: '<S300>/Logical Operator3' */
11782 L4_MABX_B.LogicalOperator3_oi = (L4_MABX_B.RelationalOperator5_f &&
11783 L4_MABX_B.LogicalOperator_bs);
11784
11785 /* Switch: '<S300>/Switch1' incorporates:
11786 * Constant: '<S300>/Constant'
11787 */
11788 if (L4_MABX_B.LogicalOperator3_oi) {
11789 L4_MABX_B.Switch1_jw = L4_MABX_B.Product1_hr;
11790 } else {
11791 L4_MABX_B.Switch1_jw = L4_MABX_P.Constant_Value_o;
11792 }
11793
11794 /* End of Switch: '<S300>/Switch1' */
11795
11796 /* UnitDelay: '<S298>/Unit Delay' */
11797 L4_MABX_B.UnitDelay_o = L4_MABX_DW.UnitDelay_DSTATE_m0;
11798
11799 /* Sum: '<S298>/Add' */
11800 L4_MABX_B.Add_px = L4_MABX_B.Switch1_jw + L4_MABX_B.UnitDelay_o;
11801
11802 /* Product: '<S298>/Divide1' incorporates:
11803 * Constant: '<S281>/Constant21'
11804 * Constant: '<S281>/SteeringControlDGain'
11805 */
11806 L4_MABX_B.Divide1_b = L4_MABX_P.SteeringControlDGain_Value *
11807 L4_MABX_B.Product_d / L4_MABX_P.Constant21_Value;
11808
11809 /* UnitDelay: '<S298>/Unit Delay1' */
11810 L4_MABX_B.UnitDelay1_e = L4_MABX_DW.UnitDelay1_DSTATE_k;
11811
11812 /* Sum: '<S298>/Add3' */
11813 L4_MABX_B.Add3 = L4_MABX_B.Divide1_b - L4_MABX_B.UnitDelay1_e;
11814
11815 /* Sum: '<S298>/Add1' */
11816 L4_MABX_B.Add1_m = (L4_MABX_B.Product_d + L4_MABX_B.Add_px) + L4_MABX_B.Add3;
11817
11818 /* RelationalOperator: '<S299>/LowerRelop1' incorporates:
11819 * Constant: '<S281>/Constant19'
11820 */
11821 L4_MABX_B.LowerRelop1 = (L4_MABX_B.Add1_m > L4_MABX_P.Constant19_Value);
11822
11823 /* RelationalOperator: '<S299>/UpperRelop' incorporates:
11824 * Constant: '<S281>/Constant20'
11825 */
11826 L4_MABX_B.UpperRelop = (L4_MABX_B.Add1_m < L4_MABX_P.Constant20_Value);
11827
11828 /* Switch: '<S299>/Switch' incorporates:
11829 * Constant: '<S281>/Constant20'
11830 */
11831 if (L4_MABX_B.UpperRelop) {
11832 L4_MABX_B.Switch_p = L4_MABX_P.Constant20_Value;
11833 } else {
11834 L4_MABX_B.Switch_p = L4_MABX_B.Add1_m;
11835 }
11836
11837 /* End of Switch: '<S299>/Switch' */
11838
11839 /* Switch: '<S299>/Switch2' incorporates:
11840 * Constant: '<S281>/Constant19'
11841 */
11842 if (L4_MABX_B.LowerRelop1) {
11843 L4_MABX_B.Switch2_i = L4_MABX_P.Constant19_Value;
11844 } else {
11845 L4_MABX_B.Switch2_i = L4_MABX_B.Switch_p;
11846 }
11847
11848 /* End of Switch: '<S299>/Switch2' */
11849
11850 /* RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
11851 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11852 L4_MABX_B.previewSteeringAngle_b =
11853 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0;
11854 }
11855
11856 /* Gain: '<S80>/rad2deg1' */
11857 L4_MABX_B.rad2deg1 = L4_MABX_P.rad2deg1_Gain *
11858 L4_MABX_B.previewSteeringAngle_b;
11859
11860 /* Sum: '<S80>/Add2' incorporates:
11861 * Constant: '<S80>/steeringOffset'
11862 */
11863 L4_MABX_B.Add2 = (L4_MABX_B.rad2deg1 + L4_MABX_B.Switch2_i) +
11864 L4_MABX_P.steeringOffset_Value;
11865
11866 /* Lookup_n-D: '<S286>/1-D Lookup Table' */
11867 L4_MABX_B.uDLookupTable_a = look1_binlxpw(L4_MABX_B.DataTypeConversion_k,
11868 L4_MABX_P.uDLookupTable_bp01Data_kj, L4_MABX_P.uDLookupTable_tableData_b, 8U);
11869
11870 /* Product: '<S286>/AdjustedStanleyGain' incorporates:
11871 * Constant: '<S286>/stanleySteeringControlGain'
11872 */
11873 L4_MABX_B.AdjustedStanleyGain = L4_MABX_B.uDLookupTable_a *
11874 L4_MABX_P.stanleySteeringControlGain_Valu;
11875
11876 /* Step: '<S280>/Step' */
11877 PositionFinalLimited = L4_MABX_M->Timing.t[0];
11878 if (PositionFinalLimited < L4_MABX_P.Step_Time) {
11879 L4_MABX_B.Step = L4_MABX_P.Step_Y0;
11880 } else {
11881 L4_MABX_B.Step = L4_MABX_P.Step_YFinal;
11882 }
11883
11884 /* End of Step: '<S280>/Step' */
11885
11886 /* DataTypeConversion: '<S280>/Data Type Conversion' */
11887 L4_MABX_B.DataTypeConversion_dn = (L4_MABX_B.Step != 0.0);
11888
11889 /* Product: '<S292>/Divide' incorporates:
11890 * Constant: '<S280>/Constant'
11891 * Constant: '<S280>/Constant1'
11892 */
11893 L4_MABX_B.Divide_d0 = (real32_T)(L4_MABX_P.Constant1_Value_iy /
11894 L4_MABX_P.Constant_Value_d);
11895
11896 /* RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
11897 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11898 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1 =
11899 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_;
11900 }
11901
11902 /* Gain: '<S80>/signCurveOffset' */
11903 L4_MABX_B.signCurveOffset = L4_MABX_P.signCurveOffset_Gain *
11904 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1;
11905
11906 /* UnitDelay: '<S292>/Unit Delay' */
11907 L4_MABX_B.UnitDelay_lj = L4_MABX_DW.UnitDelay_DSTATE_m1;
11908
11909 /* Switch: '<S296>/Switch1' incorporates:
11910 * Constant: '<S292>/E'
11911 * Switch: '<S294>/Switch1'
11912 */
11913 if (L4_MABX_B.DataTypeConversion_dn) {
11914 /* DataTypeConversion: '<S292>/Data Type Conversion1' incorporates:
11915 * Constant: '<S292>/IV'
11916 */
11917 L4_MABX_B.DataTypeConversion1_gp = (real32_T)L4_MABX_P.IV_Value_o;
11918 L4_MABX_B.Switch1_pb = L4_MABX_B.DataTypeConversion1_gp;
11919 } else {
11920 if (L4_MABX_P.E_Value_ct) {
11921 /* DataTypeConversion: '<S292>/Data Type Conversion' incorporates:
11922 * Switch: '<S294>/Switch1'
11923 */
11924 L4_MABX_B.DataTypeConversion_mv = (real32_T)L4_MABX_B.signCurveOffset;
11925
11926 /* Sum: '<S292>/Add3' incorporates:
11927 * Switch: '<S294>/Switch1'
11928 */
11929 L4_MABX_B.Add3_p = L4_MABX_B.DataTypeConversion_mv -
11930 L4_MABX_B.UnitDelay_lj;
11931
11932 /* Product: '<S292>/Product1' incorporates:
11933 * Switch: '<S294>/Switch1'
11934 */
11935 L4_MABX_B.Product1_ce = L4_MABX_B.Divide_d0 * L4_MABX_B.Add3_p;
11936
11937 /* Sum: '<S292>/Add' incorporates:
11938 * Switch: '<S294>/Switch1'
11939 */
11940 L4_MABX_B.Add_a = L4_MABX_B.Product1_ce + L4_MABX_B.UnitDelay_lj;
11941
11942 /* Switch: '<S294>/Switch1' */
11943 L4_MABX_B.Switch1_aq = L4_MABX_B.Add_a;
11944 } else {
11945 /* Switch: '<S294>/Switch1' */
11946 L4_MABX_B.Switch1_aq = L4_MABX_B.UnitDelay_lj;
11947 }
11948
11949 L4_MABX_B.Switch1_pb = L4_MABX_B.Switch1_aq;
11950 }
11951
11952 /* End of Switch: '<S296>/Switch1' */
11953
11954 /* DataTypeConversion: '<S293>/Conversion' */
11955 L4_MABX_B.Conversion_b = L4_MABX_B.Switch1_pb;
11956
11957 /* Gain: '<S80>/mm2m' */
11958 L4_MABX_B.mm2m = L4_MABX_P.mm2m_Gain * L4_MABX_B.correctedError;
11959
11960 /* Switch: '<S80>/Switch3' incorporates:
11961 * Constant: '<S80>/usePIDyForStanley'
11962 */
11963 if (L4_MABX_P.usePIDyForStanley_Value != 0.0) {
11964 L4_MABX_B.Switch3 = L4_MABX_B.Switch2_i;
11965 } else {
11966 L4_MABX_B.Switch3 = L4_MABX_B.mm2m;
11967 }
11968
11969 /* End of Switch: '<S80>/Switch3' */
11970
11971 /* Gain: '<S80>/sign3' */
11972 L4_MABX_B.sign3 = L4_MABX_P.sign3_Gain * L4_MABX_B.Switch3;
11973
11974 /* Sum: '<S80>/crossTrackError' */
11975 L4_MABX_B.crossTrackError = L4_MABX_B.Conversion_b + L4_MABX_B.sign3;
11976
11977 /* Product: '<S286>/Product' */
11978 L4_MABX_B.Product_p = L4_MABX_B.AdjustedStanleyGain *
11979 L4_MABX_B.crossTrackError;
11980
11981 /* Saturate: '<S286>/Saturation' */
11982 DeltaTime = L4_MABX_B.DataTypeConversion_k;
11983 Time56 = L4_MABX_P.Saturation_LowerSat_bq;
11984 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_e;
11985 if (DeltaTime > PositionFinalLimited) {
11986 L4_MABX_B.Saturation_a = PositionFinalLimited;
11987 } else if (DeltaTime < Time56) {
11988 L4_MABX_B.Saturation_a = Time56;
11989 } else {
11990 L4_MABX_B.Saturation_a = DeltaTime;
11991 }
11992
11993 /* End of Saturate: '<S286>/Saturation' */
11994
11995 /* Gain: '<S286>/kph2mps_' */
11996 L4_MABX_B.kph2mps_ = L4_MABX_P.kph2mps_Gain * L4_MABX_B.Saturation_a;
11997
11998 /* Trigonometry: '<S286>/Trigonometric Function' */
11999 L4_MABX_B.TrigonometricFunction_p = rt_atan2d_snf(L4_MABX_B.Product_p,
12000 L4_MABX_B.kph2mps_);
12001
12002 /* Gain: '<S80>/deg2rad1' */
12003 L4_MABX_B.deg2rad1 = L4_MABX_P.deg2rad1_Gain * L4_MABX_B.uDLookupTable1;
12004
12005 /* RateTransition: '<S286>/TmpRTBAtAdd2Inport2' */
12006 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
12007 L4_MABX_B.TmpRTBAtAdd2Inport2 = L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0;
12008 }
12009
12010 /* Sum: '<S286>/Add2' */
12011 L4_MABX_B.Add2_g = L4_MABX_B.deg2rad1 - L4_MABX_B.TmpRTBAtAdd2Inport2;
12012
12013 /* Gain: '<S286>/desHeadingWeight' */
12014 L4_MABX_B.desHeadingWeight = L4_MABX_P.desHeadingWeight_Gain *
12015 L4_MABX_B.Add2_g;
12016
12017 /* Sum: '<S286>/Add1' */
12018 L4_MABX_B.Add1_hl = L4_MABX_B.TrigonometricFunction_p +
12019 L4_MABX_B.desHeadingWeight;
12020
12021 /* DataTypeConversion: '<S312>/Data Type Conversion' incorporates:
12022 * Constant: '<S312>/RATE_LIMITER_ENABLE_APV'
12023 */
12024 L4_MABX_B.DataTypeConversion_l5 = (real_T)RATE_LIMITER_ENABLE_APV;
12025
12026 /* Lookup_n-D: '<S312>/Saturation Speed Lookup' */
12027 L4_MABX_B.SaturationSpeedLookup = look1_binlcapw
12028 (L4_MABX_B.DataTypeConversion_k, L4_MABX_P.SaturationSpeedLookup_bp01Data,
12029 L4_MABX_P.SaturationSpeedLookup_tableData, 5U);
12030
12031 /* Constant: '<S312>/Constant' */
12032 Lateral_Control_Rate_Limit = Lateral_Control_Rate_Limit_APV;
12033
12034 /* SampleTimeMath: '<S323>/sample time'
12035 *
12036 * About '<S323>/sample time':
12037 * y = K where K = ( w * Ts )
12038 */
12039 L4_MABX_B.sampletime = L4_MABX_P.sampletime_WtEt;
12040
12041 /* Product: '<S323>/delta rise limit' */
12042 L4_MABX_B.deltariselimit = Lateral_Control_Rate_Limit * L4_MABX_B.sampletime;
12043
12044 /* SampleTimeMath: '<S310>/sample time'
12045 *
12046 * About '<S310>/sample time':
12047 * y = K where K = ( w * Ts )
12048 */
12049 L4_MABX_B.sampletime_c = L4_MABX_P.sampletime_WtEt_j;
12050
12051 /* Product: '<S310>/delta rise limit' incorporates:
12052 * Constant: '<S283>/Constant7'
12053 */
12054 L4_MABX_B.deltariselimit_c = Lateral_Control_Error_Rate_Limit *
12055 L4_MABX_B.sampletime_c;
12056
12057 /* MATLAB Function: '<S283>/Error Calc' */
12058 /* MATLAB Function 'STEERCTRL_10ms/SteerController/Error Calc': '<S305>:1' */
12059 /* '<S305>:1:3' */
12060 Lateral_Control_Heading_Error = TargetAzimuth_rad - CurrentAzimuth_rad;
12061 if (Lateral_Control_Heading_Error < -3.1415926535897931) {
12062 /* '<S305>:1:5' */
12063 /* '<S305>:1:6' */
12064 Lateral_Control_Heading_Error += 6.2831853071795862;
12065 } else {
12066 if (Lateral_Control_Heading_Error > 3.1415926535897931) {
12067 /* '<S305>:1:7' */
12068 /* '<S305>:1:8' */
12069 Lateral_Control_Heading_Error -= 6.2831853071795862;
12070 }
12071 }
12072
12073 /* End of MATLAB Function: '<S283>/Error Calc' */
12074
12075 /* UnitDelay: '<S310>/Delay Input2' */
12076 L4_MABX_B.Yk1 = L4_MABX_DW.DelayInput2_DSTATE;
12077
12078 /* Sum: '<S310>/Difference Inputs1' */
12079 L4_MABX_B.UkYk1 = Lateral_Control_Heading_Error - L4_MABX_B.Yk1;
12080
12081 /* RelationalOperator: '<S319>/LowerRelop1' */
12082 L4_MABX_B.LowerRelop1_h = (L4_MABX_B.UkYk1 > L4_MABX_B.deltariselimit_c);
12083
12084 /* Product: '<S310>/delta fall limit' incorporates:
12085 * Constant: '<S283>/Constant8'
12086 */
12087 PositionFinalLimited = -Lateral_Control_Error_Rate_Limit;
12088 L4_MABX_B.deltafalllimit = PositionFinalLimited * L4_MABX_B.sampletime_c;
12089
12090 /* RelationalOperator: '<S319>/UpperRelop' */
12091 L4_MABX_B.UpperRelop_f = (L4_MABX_B.UkYk1 < L4_MABX_B.deltafalllimit);
12092
12093 /* Switch: '<S319>/Switch' */
12094 if (L4_MABX_B.UpperRelop_f) {
12095 L4_MABX_B.Switch_i = L4_MABX_B.deltafalllimit;
12096 } else {
12097 L4_MABX_B.Switch_i = L4_MABX_B.UkYk1;
12098 }
12099
12100 /* End of Switch: '<S319>/Switch' */
12101
12102 /* Switch: '<S319>/Switch2' */
12103 if (L4_MABX_B.LowerRelop1_h) {
12104 L4_MABX_B.Switch2_f = L4_MABX_B.deltariselimit_c;
12105 } else {
12106 L4_MABX_B.Switch2_f = L4_MABX_B.Switch_i;
12107 }
12108
12109 /* End of Switch: '<S319>/Switch2' */
12110
12111 /* Sum: '<S310>/Difference Inputs2' */
12112 L4_MABX_B.DifferenceInputs2 = L4_MABX_B.Switch2_f + L4_MABX_B.Yk1;
12113
12114 /* RelationalOperator: '<S306>/Relational Operator1' incorporates:
12115 * Constant: '<S283>/Constant'
12116 */
12117 L4_MABX_B.RelationalOperator1_p = (L4_MABX_B.DifferenceInputs2 >=
12118 Lateral_Control_Error_Limit);
12119
12120 /* RelationalOperator: '<S306>/Relational Operator' incorporates:
12121 * Constant: '<S283>/Constant1'
12122 */
12123 PositionFinalLimited = -Lateral_Control_Error_Limit;
12124 L4_MABX_B.RelationalOperator_hy = (L4_MABX_B.DifferenceInputs2 <=
12125 PositionFinalLimited);
12126
12127 /* Outputs for Atomic SubSystem: '<S306>/If_Then_Else1' */
12128 /* Constant: '<S283>/Constant1' */
12129 PositionFinalLimited = -Lateral_Control_Error_Limit;
12130 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_hy, PositionFinalLimited,
12131 L4_MABX_B.DifferenceInputs2, &L4_MABX_B.If_Then_Else1_km);
12132
12133 /* End of Outputs for SubSystem: '<S306>/If_Then_Else1' */
12134
12135 /* Outputs for Atomic SubSystem: '<S306>/If_Then_Else' */
12136
12137 /* Constant: '<S283>/Constant' */
12138 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_p,
12139 Lateral_Control_Error_Limit,
12140 L4_MABX_B.If_Then_Else1_km.Switch,
12141 &L4_MABX_B.If_Then_Else_pn);
12142
12143 /* End of Outputs for SubSystem: '<S306>/If_Then_Else' */
12144
12145 /* Outputs for Atomic SubSystem: '<S283>/If_Then_Else1' */
12146
12147 /* Constant: '<S283>/Zero' */
12148 L4_MABX_If_Then_Else_g(AutonomousEnabled, L4_MABX_B.If_Then_Else_pn.Switch,
12149 L4_MABX_P.Zero_Value, &L4_MABX_B.If_Then_Else1_m);
12150
12151 /* End of Outputs for SubSystem: '<S283>/If_Then_Else1' */
12152
12153 /* Gain: '<S309>/Proportional Gain' */
12154 L4_MABX_B.ProportionalGain = Lateral_Control_P *
12155 L4_MABX_B.If_Then_Else1_m.Switch;
12156
12157 /* DiscreteIntegrator: '<S309>/Integrator' */
12158 if (AutonomousEnabled && (L4_MABX_DW.Integrator_PrevResetState <= 0)) {
12159 L4_MABX_DW.Integrator_DSTATE = L4_MABX_P.Integrator_IC;
12160 }
12161
12162 L4_MABX_B.Integrator = L4_MABX_DW.Integrator_DSTATE;
12163
12164 /* End of DiscreteIntegrator: '<S309>/Integrator' */
12165
12166 /* Gain: '<S309>/Derivative Gain' */
12167 L4_MABX_B.DerivativeGain = Lateral_Control_D *
12168 L4_MABX_B.If_Then_Else1_m.Switch;
12169
12170 /* DiscreteIntegrator: '<S309>/Filter' */
12171 if (AutonomousEnabled && (L4_MABX_DW.Filter_PrevResetState <= 0)) {
12172 L4_MABX_DW.Filter_DSTATE = L4_MABX_P.Filter_IC;
12173 }
12174
12175 L4_MABX_B.Filter = L4_MABX_DW.Filter_DSTATE;
12176
12177 /* End of DiscreteIntegrator: '<S309>/Filter' */
12178
12179 /* Sum: '<S309>/SumD' */
12180 L4_MABX_B.SumD = L4_MABX_B.DerivativeGain - L4_MABX_B.Filter;
12181
12182 /* Gain: '<S309>/Filter Coefficient' */
12183 L4_MABX_B.FilterCoefficient = L4_MABX_P.PIDController_N * L4_MABX_B.SumD;
12184
12185 /* Sum: '<S309>/Sum' */
12186 L4_MABX_B.Sum_c = (L4_MABX_B.ProportionalGain + L4_MABX_B.Integrator) +
12187 L4_MABX_B.FilterCoefficient;
12188
12189 /* Saturate: '<S309>/Saturate' */
12190 DeltaTime = L4_MABX_B.Sum_c;
12191 Time56 = L4_MABX_P.PIDController_LowerSaturationLi;
12192 PositionFinalLimited = L4_MABX_P.PIDController_UpperSaturationLi;
12193 if (DeltaTime > PositionFinalLimited) {
12194 L4_MABX_B.Saturate = PositionFinalLimited;
12195 } else if (DeltaTime < Time56) {
12196 L4_MABX_B.Saturate = Time56;
12197 } else {
12198 L4_MABX_B.Saturate = DeltaTime;
12199 }
12200
12201 /* End of Saturate: '<S309>/Saturate' */
12202
12203 /* UnitDelay: '<S313>/Delay Input' */
12204 L4_MABX_B.Uk1_m = L4_MABX_DW.DelayInput_DSTATE;
12205
12206 /* Gain: '<S313>/GainZero' */
12207 L4_MABX_B.ZeroUk1 = Lateral_Control_Zero * L4_MABX_B.Uk1_m;
12208
12209 /* UnitDelay: '<S313>/Delay Output' */
12210 L4_MABX_B.Yk1_p = L4_MABX_DW.DelayOutput_DSTATE;
12211
12212 /* Gain: '<S313>/GainPole' */
12213 L4_MABX_B.PoleYk1 = Lateral_Control_Pole * L4_MABX_B.Yk1_p;
12214
12215 /* Sum: '<S313>/Sum' */
12216 L4_MABX_B.PoleYk1UkZeroUk1 = (L4_MABX_B.Saturate - L4_MABX_B.ZeroUk1) +
12217 L4_MABX_B.PoleYk1;
12218
12219 /* DataTypeConversion: '<S313>/Downcast' */
12220 L4_MABX_B.Downcast = L4_MABX_B.PoleYk1UkZeroUk1;
12221
12222 /* Sum: '<S283>/Subtract' incorporates:
12223 * Constant: '<S283>/Constant6'
12224 */
12225 L4_MABX_B.Subtract_c = ReAX_ActualHandwheelPos - REAX_OFFSET_APV;
12226
12227 /* Lookup_n-D: '<S283>/1-D Lookup Table' */
12228 L4_MABX_B.uDLookupTable_j = look1_binlxpw(L4_MABX_B.Subtract_c,
12229 L4_MABX_P.uDLookupTable_bp01Data_d, L4_MABX_P.uDLookupTable_tableData_d, 71U);
12230
12231 /* Gain: '<S283>/deg2rad' */
12232 L4_MABX_B.deg2rad = L4_MABX_P.deg2rad_Gain_l * L4_MABX_B.uDLookupTable_j;
12233
12234 /* Gain: '<S283>/invert' */
12235 L4_MABX_B.invert = L4_MABX_P.invert_Gain_i * L4_MABX_B.deg2rad;
12236
12237 /* Gain: '<S283>/PGain' */
12238 L4_MABX_B.PGain = Lateral_Control_P * L4_MABX_B.If_Then_Else_pn.Switch;
12239
12240 /* SampleTimeMath: '<S311>/sample time'
12241 *
12242 * About '<S311>/sample time':
12243 * y = K where K = ( w * Ts )
12244 */
12245 L4_MABX_B.sampletime_a = L4_MABX_P.sampletime_WtEt_p;
12246
12247 /* Product: '<S311>/delta rise limit' incorporates:
12248 * Constant: '<S283>/Constant9'
12249 */
12250 L4_MABX_B.deltariselimit_o = Lateral_Control_Error_Rate_Limit *
12251 L4_MABX_B.sampletime_a;
12252
12253 /* Sum: '<S283>/Sum' incorporates:
12254 * Constant: '<S283>/YAW_RATE_OFFSET_APV'
12255 */
12256 L4_MABX_B.Sum_ly = YawRate + YAW_RATE_OFFSET_APV;
12257
12258 /* RelationalOperator: '<S314>/Relational Operator1' incorporates:
12259 * Constant: '<S283>/Constant2'
12260 */
12261 L4_MABX_B.RelationalOperator1_f = (L4_MABX_B.Sum_ly >=
12262 Lateral_Control_YawRate_Limit);
12263
12264 /* RelationalOperator: '<S314>/Relational Operator' incorporates:
12265 * Constant: '<S283>/Constant4'
12266 */
12267 PositionFinalLimited = -Lateral_Control_YawRate_Limit;
12268 L4_MABX_B.RelationalOperator_l4 = (L4_MABX_B.Sum_ly <= PositionFinalLimited);
12269
12270 /* Outputs for Atomic SubSystem: '<S314>/If_Then_Else1' */
12271 /* Constant: '<S283>/Constant4' */
12272 PositionFinalLimited = -Lateral_Control_YawRate_Limit;
12273 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_l4, PositionFinalLimited,
12274 L4_MABX_B.Sum_ly, &L4_MABX_B.If_Then_Else1_o);
12275
12276 /* End of Outputs for SubSystem: '<S314>/If_Then_Else1' */
12277
12278 /* Outputs for Atomic SubSystem: '<S314>/If_Then_Else' */
12279
12280 /* Constant: '<S283>/Constant2' */
12281 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_f,
12282 Lateral_Control_YawRate_Limit,
12283 L4_MABX_B.If_Then_Else1_o.Switch,
12284 &L4_MABX_B.If_Then_Else_m);
12285
12286 /* End of Outputs for SubSystem: '<S314>/If_Then_Else' */
12287
12288 /* Gain: '<S283>/RateFeedbackGain' */
12289 L4_MABX_B.RateFeedbackGain = Yaw_Rate_FF_Gain *
12290 L4_MABX_B.If_Then_Else_m.Switch;
12291
12292 /* RelationalOperator: '<S304>/Relational Operator1' incorporates:
12293 * Constant: '<S283>/Constant3'
12294 */
12295 L4_MABX_B.RelationalOperator1_gr = (Curvature >=
12296 Lateral_Control_Curvature_Limit);
12297
12298 /* RelationalOperator: '<S304>/Relational Operator' incorporates:
12299 * Constant: '<S283>/Constant5'
12300 */
12301 PositionFinalLimited = -Lateral_Control_Curvature_Limit;
12302 L4_MABX_B.RelationalOperator_o = (Curvature <= PositionFinalLimited);
12303
12304 /* Outputs for Atomic SubSystem: '<S304>/If_Then_Else1' */
12305 /* Constant: '<S283>/Constant5' */
12306 PositionFinalLimited = -Lateral_Control_Curvature_Limit;
12307 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_o, PositionFinalLimited,
12308 Curvature, &L4_MABX_B.If_Then_Else1_d);
12309
12310 /* End of Outputs for SubSystem: '<S304>/If_Then_Else1' */
12311
12312 /* Outputs for Atomic SubSystem: '<S304>/If_Then_Else' */
12313
12314 /* Constant: '<S283>/Constant3' */
12315 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_gr,
12316 Lateral_Control_Curvature_Limit,
12317 L4_MABX_B.If_Then_Else1_d.Switch,
12318 &L4_MABX_B.If_Then_Else_pe);
12319
12320 /* End of Outputs for SubSystem: '<S304>/If_Then_Else' */
12321
12322 /* Gain: '<S283>/FeedforwardGain' */
12323 L4_MABX_B.FeedforwardGain = Curvature_FF_Gain *
12324 L4_MABX_B.If_Then_Else_pe.Switch;
12325
12326 /* Gain: '<S283>/UndersteerCorrection' */
12327 L4_MABX_B.UndersteerCorrection = UndersteerCorection *
12328 L4_MABX_B.FeedforwardGain;
12329
12330 /* Sum: '<S283>/Sum2' */
12331 L4_MABX_B.Sum2 = L4_MABX_B.UndersteerCorrection - L4_MABX_B.RateFeedbackGain;
12332
12333 /* UnitDelay: '<S311>/Delay Input2' */
12334 L4_MABX_B.Yk1_o = L4_MABX_DW.DelayInput2_DSTATE_a;
12335
12336 /* Sum: '<S311>/Difference Inputs1' */
12337 L4_MABX_B.UkYk1_n = L4_MABX_B.Sum2 - L4_MABX_B.Yk1_o;
12338
12339 /* RelationalOperator: '<S320>/LowerRelop1' */
12340 L4_MABX_B.LowerRelop1_o = (L4_MABX_B.UkYk1_n > L4_MABX_B.deltariselimit_o);
12341
12342 /* Product: '<S311>/delta fall limit' incorporates:
12343 * Constant: '<S283>/Constant10'
12344 */
12345 PositionFinalLimited = -Lateral_Control_Error_Rate_Limit;
12346 L4_MABX_B.deltafalllimit_o = PositionFinalLimited * L4_MABX_B.sampletime_a;
12347
12348 /* RelationalOperator: '<S320>/UpperRelop' */
12349 L4_MABX_B.UpperRelop_o = (L4_MABX_B.UkYk1_n < L4_MABX_B.deltafalllimit_o);
12350
12351 /* Switch: '<S320>/Switch' */
12352 if (L4_MABX_B.UpperRelop_o) {
12353 L4_MABX_B.Switch_e = L4_MABX_B.deltafalllimit_o;
12354 } else {
12355 L4_MABX_B.Switch_e = L4_MABX_B.UkYk1_n;
12356 }
12357
12358 /* End of Switch: '<S320>/Switch' */
12359
12360 /* Switch: '<S320>/Switch2' */
12361 if (L4_MABX_B.LowerRelop1_o) {
12362 L4_MABX_B.Switch2_e = L4_MABX_B.deltariselimit_o;
12363 } else {
12364 L4_MABX_B.Switch2_e = L4_MABX_B.Switch_e;
12365 }
12366
12367 /* End of Switch: '<S320>/Switch2' */
12368
12369 /* Sum: '<S311>/Difference Inputs2' */
12370 L4_MABX_B.DifferenceInputs2_a = L4_MABX_B.Switch2_e + L4_MABX_B.Yk1_o;
12371
12372 /* Sum: '<S283>/Sum3' */
12373 L4_MABX_B.Sum3 = (L4_MABX_B.invert - L4_MABX_B.PGain) -
12374 L4_MABX_B.DifferenceInputs2_a;
12375
12376 /* DiscreteIntegrator: '<S303>/Discrete-Time Integrator' */
12377 if (L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI != 0) {
12378 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE = L4_MABX_B.Sum3;
12379 }
12380
12381 if (AutonomousEnabled && (L4_MABX_DW.DiscreteTimeIntegrator_PrevRese <= 0)) {
12382 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE = L4_MABX_B.Sum3;
12383 }
12384
12385 L4_MABX_B.DiscreteTimeIntegrator = L4_MABX_DW.DiscreteTimeIntegrator_DSTATE;
12386
12387 /* End of DiscreteIntegrator: '<S303>/Discrete-Time Integrator' */
12388
12389 /* Sum: '<S283>/Sum4' */
12390 L4_MABX_B.Sum4 = L4_MABX_B.Downcast + L4_MABX_B.DiscreteTimeIntegrator;
12391
12392 /* Sum: '<S283>/Sum1' */
12393 Lateral_Control_Output = L4_MABX_B.Sum4 + L4_MABX_B.DifferenceInputs2_a;
12394
12395 /* UnitDelay: '<S323>/Delay Input2' */
12396 L4_MABX_B.Yk1_pm = L4_MABX_DW.DelayInput2_DSTATE_l;
12397
12398 /* Sum: '<S323>/Difference Inputs1' */
12399 L4_MABX_B.UkYk1_f = Lateral_Control_Output - L4_MABX_B.Yk1_pm;
12400
12401 /* RelationalOperator: '<S325>/LowerRelop1' */
12402 L4_MABX_B.LowerRelop1_l = (L4_MABX_B.UkYk1_f > L4_MABX_B.deltariselimit);
12403
12404 /* Gain: '<S312>/Gain3' */
12405 L4_MABX_B.RateLimitLower = L4_MABX_P.Gain3_Gain_p * Lateral_Control_Rate_Limit;
12406
12407 /* Product: '<S323>/delta fall limit' */
12408 L4_MABX_B.deltafalllimit_n = L4_MABX_B.RateLimitLower * L4_MABX_B.sampletime;
12409
12410 /* RelationalOperator: '<S325>/UpperRelop' */
12411 L4_MABX_B.UpperRelop_k = (L4_MABX_B.UkYk1_f < L4_MABX_B.deltafalllimit_n);
12412
12413 /* Switch: '<S325>/Switch' */
12414 if (L4_MABX_B.UpperRelop_k) {
12415 L4_MABX_B.Switch_f = L4_MABX_B.deltafalllimit_n;
12416 } else {
12417 L4_MABX_B.Switch_f = L4_MABX_B.UkYk1_f;
12418 }
12419
12420 /* End of Switch: '<S325>/Switch' */
12421
12422 /* Switch: '<S325>/Switch2' */
12423 if (L4_MABX_B.LowerRelop1_l) {
12424 L4_MABX_B.Switch2_fa = L4_MABX_B.deltariselimit;
12425 } else {
12426 L4_MABX_B.Switch2_fa = L4_MABX_B.Switch_f;
12427 }
12428
12429 /* End of Switch: '<S325>/Switch2' */
12430
12431 /* Sum: '<S323>/Difference Inputs2' */
12432 L4_MABX_B.DifferenceInputs2_m = L4_MABX_B.Switch2_fa + L4_MABX_B.Yk1_pm;
12433
12434 /* RelationalOperator: '<S324>/LowerRelop1' */
12435 L4_MABX_B.LowerRelop1_e = (L4_MABX_B.DifferenceInputs2_m >
12436 L4_MABX_B.SaturationSpeedLookup);
12437
12438 /* Gain: '<S312>/Gain1' */
12439 L4_MABX_B.Gain1_f = L4_MABX_P.Gain1_Gain_p * L4_MABX_B.SaturationSpeedLookup;
12440
12441 /* RelationalOperator: '<S324>/UpperRelop' */
12442 L4_MABX_B.UpperRelop_fl = (L4_MABX_B.DifferenceInputs2_m < L4_MABX_B.Gain1_f);
12443
12444 /* Switch: '<S324>/Switch' */
12445 if (L4_MABX_B.UpperRelop_fl) {
12446 L4_MABX_B.Switch_hx = L4_MABX_B.Gain1_f;
12447 } else {
12448 L4_MABX_B.Switch_hx = L4_MABX_B.DifferenceInputs2_m;
12449 }
12450
12451 /* End of Switch: '<S324>/Switch' */
12452
12453 /* Switch: '<S324>/Switch2' */
12454 if (L4_MABX_B.LowerRelop1_e) {
12455 L4_MABX_B.Switch2_k = L4_MABX_B.SaturationSpeedLookup;
12456 } else {
12457 L4_MABX_B.Switch2_k = L4_MABX_B.Switch_hx;
12458 }
12459
12460 /* End of Switch: '<S324>/Switch2' */
12461
12462 /* Outputs for Atomic SubSystem: '<S312>/If_Then_Else' */
12463 L4_MABX_If_Then_Else_c(L4_MABX_B.DataTypeConversion_l5, L4_MABX_B.Switch2_k,
12464 Lateral_Control_Output, &L4_MABX_B.If_Then_Else_co);
12465
12466 /* End of Outputs for SubSystem: '<S312>/If_Then_Else' */
12467
12468 /* SignalConversion: '<S312>/TmpSignal ConversionAtIf_Then_ElseOutport1' */
12469 Lateral_Control_Rate_Limiter_Output = L4_MABX_B.If_Then_Else_co.Switch;
12470
12471 /* MATLAB Function: '<S282>/Error Calc' */
12472 /* MATLAB Function 'STEERCTRL_10ms/StanleyController/Error Calc': '<S301>:1' */
12473 /* '<S301>:1:3' */
12474 L4_MABX_B.error = TargetAzimuth_rad - CurrentAzimuth_rad;
12475 if (L4_MABX_B.error < -3.1415926535897931) {
12476 /* '<S301>:1:5' */
12477 /* '<S301>:1:6' */
12478 L4_MABX_B.error += 6.2831853071795862;
12479 } else {
12480 if (L4_MABX_B.error > 3.1415926535897931) {
12481 /* '<S301>:1:7' */
12482 /* '<S301>:1:8' */
12483 L4_MABX_B.error -= 6.2831853071795862;
12484 }
12485 }
12486
12487 /* End of MATLAB Function: '<S282>/Error Calc' */
12488
12489 /* MultiPortSwitch: '<S80>/Multiport Switch2' incorporates:
12490 * Constant: '<S80>/LAT_STEER_SRC_SELECTOR_APV'
12491 */
12492 if (LAT_STEER_SRC_SELECTOR_APV == ENUM_LAT_STEER_SOURCE_T_PIC_HARIS) {
12493 /* Outputs for Atomic SubSystem: '<S283>/If_Then_Else' */
12494 L4_MABX_If_Then_Else_g(AutonomousEnabled,
12495 Lateral_Control_Rate_Limiter_Output, L4_MABX_B.invert,
12496 &L4_MABX_B.If_Then_Else_m1);
12497
12498 /* End of Outputs for SubSystem: '<S283>/If_Then_Else' */
12499 L4_MABX_B.MultiportSwitch2 = L4_MABX_B.If_Then_Else_m1.Switch;
12500 } else {
12501 /* Saturate: '<S282>/Speed Saturation' */
12502 DeltaTime = L4_MABX_B.DataTypeConversion_k;
12503 Time56 = L4_MABX_P.SpeedSaturation_LowerSat;
12504 PositionFinalLimited = L4_MABX_P.SpeedSaturation_UpperSat;
12505 if (DeltaTime > PositionFinalLimited) {
12506 L4_MABX_B.SpeedSaturation = PositionFinalLimited;
12507 } else if (DeltaTime < Time56) {
12508 L4_MABX_B.SpeedSaturation = Time56;
12509 } else {
12510 L4_MABX_B.SpeedSaturation = DeltaTime;
12511 }
12512
12513 /* End of Saturate: '<S282>/Speed Saturation' */
12514
12515 /* Gain: '<S282>/km//h to m//s' */
12516 L4_MABX_B.kmhtoms = L4_MABX_P.kmhtoms_Gain * L4_MABX_B.SpeedSaturation;
12517
12518 /* Product: '<S282>/Product' incorporates:
12519 * Constant: '<S282>/StanleySteeringControlGain'
12520 */
12521 L4_MABX_B.Product_n = STANLEY_GAIN_APV * CrosstrackError;
12522
12523 /* Trigonometry: '<S282>/Trigonometric Function' */
12524 L4_MABX_B.TrigonometricFunction_l = rt_atan2d_snf(L4_MABX_B.Product_n,
12525 L4_MABX_B.kmhtoms);
12526
12527 /* Saturate: '<S282>/Error Saturation' */
12528 DeltaTime = L4_MABX_B.error;
12529 Time56 = L4_MABX_P.ErrorSaturation_LowerSat;
12530 PositionFinalLimited = L4_MABX_P.ErrorSaturation_UpperSat;
12531 if (DeltaTime > PositionFinalLimited) {
12532 L4_MABX_B.ErrorSaturation = PositionFinalLimited;
12533 } else if (DeltaTime < Time56) {
12534 L4_MABX_B.ErrorSaturation = Time56;
12535 } else {
12536 L4_MABX_B.ErrorSaturation = DeltaTime;
12537 }
12538
12539 /* End of Saturate: '<S282>/Error Saturation' */
12540
12541 /* Sum: '<S282>/Sum1' */
12542 L4_MABX_B.Sum1 = L4_MABX_B.ErrorSaturation +
12543 L4_MABX_B.TrigonometricFunction_l;
12544
12545 /* Sum: '<S282>/Subtract' incorporates:
12546 * Constant: '<S282>/ReAX Offset'
12547 */
12548 L4_MABX_B.Subtract_e = ReAX_ActualHandwheelPos - REAX_OFFSET_APV;
12549
12550 /* Lookup_n-D: '<S282>/1-D Lookup Table' */
12551 L4_MABX_B.uDLookupTable_h = look1_binlxpw(L4_MABX_B.Subtract_e,
12552 L4_MABX_P.uDLookupTable_bp01Data_k, L4_MABX_P.uDLookupTable_tableData_k,
12553 71U);
12554
12555 /* Gain: '<S282>/deg2rad' */
12556 L4_MABX_B.deg2rad_o = L4_MABX_P.deg2rad_Gain_n * L4_MABX_B.uDLookupTable_h;
12557
12558 /* Gain: '<S282>/invert' */
12559 L4_MABX_B.invert_d = L4_MABX_P.invert_Gain * L4_MABX_B.deg2rad_o;
12560
12561 /* Outputs for Atomic SubSystem: '<S282>/If_Then_Else' */
12562 L4_MABX_If_Then_Else_g(AutonomousEnabled, L4_MABX_B.Sum1, L4_MABX_B.invert_d,
12563 &L4_MABX_B.If_Then_Else_nhw);
12564
12565 /* End of Outputs for SubSystem: '<S282>/If_Then_Else' */
12566 L4_MABX_B.MultiportSwitch2 = L4_MABX_B.If_Then_Else_nhw.Switch;
12567 }
12568
12569 /* End of MultiPortSwitch: '<S80>/Multiport Switch2' */
12570
12571 /* DataTypeConversion: '<S80>/Data Type Conversion6' */
12572 L4_MABX_B.DataTypeConversion6_pa = L4_MABX_B.MultiportSwitch2;
12573
12574 /* Gain: '<S80>/rad2deg' */
12575 L4_MABX_B.rad2deg = L4_MABX_P.rad2deg_Gain * L4_MABX_B.DataTypeConversion6_pa;
12576
12577 /* Gain: '<S80>/sign flip' */
12578 SteerCommandDeg = L4_MABX_P.signflip_Gain * L4_MABX_B.rad2deg;
12579
12580 /* MultiPortSwitch: '<S80>/Multiport Switch1' incorporates:
12581 * Constant: '<S80>/LONG_SPEED_SRC_SELECTOR_APV'
12582 * Constant: '<S80>/SteeringOverrideVal1'
12583 */
12584 switch (LONG_SPEED_SRC_SELECTOR_APV) {
12585 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
12586 /* MultiPortSwitch: '<S80>/Multiport Switch' incorporates:
12587 * Constant: '<S80>/SteeringControlSRC'
12588 * Constant: '<S80>/SteeringOverrideVal'
12589 */
12590 switch (L4_MABX_P.SteeringControlSRC_Value) {
12591 case 0:
12592 L4_MABX_B.MultiportSwitch_f = L4_MABX_P.SteeringOverrideVal_Value;
12593 break;
12594
12595 case 1:
12596 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.Switch2_i;
12597 break;
12598
12599 case 2:
12600 /* DataTypeConversion: '<S80>/Data Type Conversion2' */
12601 L4_MABX_B.DataTypeConversion2_ox = L4_MABX_B.Add2;
12602 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.DataTypeConversion2_ox;
12603 break;
12604
12605 default:
12606 /* DataTypeConversion: '<S80>/Data Type Conversion3' */
12607 L4_MABX_B.DataTypeConversion3_p = L4_MABX_B.Add1_hl;
12608 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.DataTypeConversion3_p;
12609 break;
12610 }
12611
12612 /* End of MultiPortSwitch: '<S80>/Multiport Switch' */
12613
12614 /* Gain: '<S80>/rad2deg2' */
12615 L4_MABX_B.rad2deg2 = L4_MABX_P.rad2deg2_Gain * L4_MABX_B.MultiportSwitch_f;
12616 L4_MABX_B.MultiportSwitch1 = L4_MABX_B.rad2deg2;
12617 break;
12618
12619 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
12620 L4_MABX_B.MultiportSwitch1 = L4_MABX_P.SteeringOverrideVal1_Value;
12621 break;
12622
12623 default:
12624 L4_MABX_B.MultiportSwitch1 = SteerCommandDeg;
12625 break;
12626 }
12627
12628 /* End of MultiPortSwitch: '<S80>/Multiport Switch1' */
12629
12630 /* Lookup_n-D: '<S278>/1D_Lookup_Table' */
12631 L4_MABX_B.uD_Lookup_Table_a = look1_binlcapw(L4_MABX_B.MultiportSwitch1,
12632 STEERCTRL_WHEEL_ANGLE_STEP_MPV, STEERCTRL_WHEEL_ANGLE_DATA_MPV, 71U);
12633
12634 /* DataTypeConversion: '<S80>/Data Type Conversion4' */
12635 L4_MABX_B.numLanePoints_j = L4_MABX_B.DataTypeConversion5_e3;
12636
12637 /* DiscreteIntegrator: '<S80>/Discrete-Time Integrator' incorporates:
12638 * Constant: '<S80>/ResetIntegrator'
12639 */
12640 if ((L4_MABX_P.ResetIntegrator_Value != 0.0) ||
12641 (L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e != 0)) {
12642 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12643 L4_MABX_P.DiscreteTimeIntegrator_IC;
12644 }
12645
12646 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e >=
12647 L4_MABX_P.DiscreteTimeIntegrator_UpperSat) {
12648 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12649 L4_MABX_P.DiscreteTimeIntegrator_UpperSat;
12650 } else {
12651 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e <=
12652 L4_MABX_P.DiscreteTimeIntegrator_LowerSat) {
12653 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12654 L4_MABX_P.DiscreteTimeIntegrator_LowerSat;
12655 }
12656 }
12657
12658 L4_MABX_B.DiscreteTimeIntegrator_h =
12659 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e;
12660
12661 /* End of DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
12662
12663 /* RelationalOperator: '<S290>/Lower Test' incorporates:
12664 * Constant: '<S290>/Lower Limit'
12665 */
12666 L4_MABX_B.LowerTest = (L4_MABX_P.IntervalTest_lowlimit <= L4_MABX_B.Divide_nn);
12667
12668 /* RelationalOperator: '<S290>/Upper Test' incorporates:
12669 * Constant: '<S290>/Upper Limit'
12670 */
12671 L4_MABX_B.UpperTest = (L4_MABX_B.Divide_nn <= L4_MABX_P.IntervalTest_uplimit);
12672
12673 /* Logic: '<S290>/AND' */
12674 L4_MABX_B.AND_p = (L4_MABX_B.LowerTest && L4_MABX_B.UpperTest);
12675
12676 /* Assertion: '<S287>/Assertion' */
12677 utAssert(L4_MABX_B.AND_p);
12678
12679 /* RelationalOperator: '<S295>/Lower Test' incorporates:
12680 * Constant: '<S295>/Lower Limit'
12681 */
12682 L4_MABX_B.LowerTest_l = (L4_MABX_P.IntervalTest_lowlimit_k <=
12683 L4_MABX_B.Divide_d0);
12684
12685 /* RelationalOperator: '<S295>/Upper Test' incorporates:
12686 * Constant: '<S295>/Upper Limit'
12687 */
12688 L4_MABX_B.UpperTest_e = (L4_MABX_B.Divide_d0 <=
12689 L4_MABX_P.IntervalTest_uplimit_e);
12690
12691 /* Logic: '<S295>/AND' */
12692 L4_MABX_B.AND_j = (L4_MABX_B.LowerTest_l && L4_MABX_B.UpperTest_e);
12693
12694 /* Assertion: '<S292>/Assertion' */
12695 utAssert(L4_MABX_B.AND_j);
12696
12697 /* Switch: '<S298>/Switch' incorporates:
12698 * Constant: '<S281>/Constant8'
12699 * Constant: '<S281>/Constant9'
12700 */
12701 if (L4_MABX_P.Constant8_Value_l) {
12702 L4_MABX_B.Switch_k = L4_MABX_P.Constant9_Value;
12703 } else {
12704 L4_MABX_B.Switch_k = L4_MABX_B.Add_px;
12705 }
12706
12707 /* End of Switch: '<S298>/Switch' */
12708
12709 /* RelationalOperator: '<S80>/Relational Operator' incorporates:
12710 * Constant: '<S80>/Constant1'
12711 */
12712 L4_MABX_B.RelationalOperator_oq = (L4_MABX_B.DataTypeConversion5_e3 >=
12713 L4_MABX_P.Constant1_Value_lsu);
12714
12715 /* Gain: '<S303>/Gain' */
12716 L4_MABX_B.Gain_o = L4_MABX_P.Gain_Gain_p * L4_MABX_B.DiscreteTimeIntegrator;
12717
12718 /* Gain: '<S309>/Integral Gain' */
12719 L4_MABX_B.IntegralGain = Lateral_Control_I * L4_MABX_B.If_Then_Else1_m.Switch;
12720
12721 /* Abs: '<S312>/Abs' */
12722 L4_MABX_B.Abs_ig = fabs(L4_MABX_B.If_Then_Else_pe.Switch);
12723
12724 /* Abs: '<S312>/Abs1' */
12725 L4_MABX_B.Abs1_ft = fabs(L4_MABX_B.DifferenceInputs2);
12726
12727 /* Sum: '<S312>/Subtract' */
12728 L4_MABX_B.Subtract_o = Lateral_Control_Output - L4_MABX_B.DifferenceInputs2_m;
12729
12730 /* Abs: '<S312>/Abs2' */
12731 L4_MABX_B.Abs2_k = fabs(L4_MABX_B.Subtract_o);
12732
12733 /* RelationalOperator: '<S321>/Compare' incorporates:
12734 * Constant: '<S321>/Constant'
12735 */
12736 RateLimiterActive = (L4_MABX_B.Abs2_k > L4_MABX_P.CompareToConstant_const_g);
12737
12738 /* Lookup_n-D: '<S312>/Curvature Lookup Table' */
12739 L4_MABX_B.RateCurvature = look1_binlcapw(L4_MABX_B.Abs_ig,
12740 L4_MABX_P.CurvatureLookupTable_bp01Data,
12741 L4_MABX_P.CurvatureLookupTable_tableData, 4U);
12742
12743 /* Lookup_n-D: '<S312>/Error Lookup Table' */
12744 L4_MABX_B.RateError = look1_binlcapw(L4_MABX_B.Abs1_ft,
12745 L4_MABX_P.ErrorLookupTable_bp01Data, L4_MABX_P.ErrorLookupTable_tableData,
12746 4U);
12747
12748 /* MinMax: '<S312>/Max' */
12749 DeltaTime = L4_MABX_B.RateCurvature;
12750 PositionFinalLimited = L4_MABX_B.RateError;
12751 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
12752 PositionFinalLimited = DeltaTime;
12753 }
12754
12755 L4_MABX_B.Max = PositionFinalLimited;
12756
12757 /* End of MinMax: '<S312>/Max' */
12758
12759 /* Lookup_n-D: '<S312>/Speed Lookup Table' */
12760 L4_MABX_B.RateSpeed = look1_binlcapw(L4_MABX_B.DataTypeConversion_k,
12761 L4_MABX_P.SpeedLookupTable_bp01Data, L4_MABX_P.SpeedLookupTable_tableData,
12762 5U);
12763
12764 /* MinMax: '<S312>/Min' */
12765 DeltaTime = L4_MABX_B.Max;
12766 PositionFinalLimited = L4_MABX_B.RateSpeed;
12767 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
12768 PositionFinalLimited = DeltaTime;
12769 }
12770
12771 L4_MABX_B.Min = PositionFinalLimited;
12772
12773 /* End of MinMax: '<S312>/Min' */
12774
12775 /* RateLimiter: '<S312>/Limit Rate Limiter' */
12776 PositionFinalLimited = L4_MABX_B.Min - L4_MABX_DW.PrevY;
12777 if (PositionFinalLimited > L4_MABX_P.LimitRateLimiter_RisingLim) {
12778 L4_MABX_B.RateLimitUpper = L4_MABX_DW.PrevY +
12779 L4_MABX_P.LimitRateLimiter_RisingLim;
12780 } else if (PositionFinalLimited < L4_MABX_P.LimitRateLimiter_FallingLim) {
12781 L4_MABX_B.RateLimitUpper = L4_MABX_DW.PrevY +
12782 L4_MABX_P.LimitRateLimiter_FallingLim;
12783 } else {
12784 L4_MABX_B.RateLimitUpper = L4_MABX_B.Min;
12785 }
12786
12787 L4_MABX_DW.PrevY = L4_MABX_B.RateLimitUpper;
12788
12789 /* End of RateLimiter: '<S312>/Limit Rate Limiter' */
12790
12791 /* Gain: '<S80>/sign2' */
12792 DesiredSteeringAngle = L4_MABX_P.sign2_Gain * L4_MABX_B.uD_Lookup_Table_a;
12793
12794 /* Sum: '<S80>/Subtract' incorporates:
12795 * Constant: '<S80>/Constant'
12796 */
12797 L4_MABX_B.Subtract_c1 = DesiredSteeringAngle + REAX_OFFSET_APV;
12798
12799 /* UnitDelay: '<S80>/Unit Delay' */
12800 L4_MABX_B.UnitDelay_p = L4_MABX_DW.UnitDelay_DSTATE_e3;
12801
12802 /* Switch: '<S80>/Switch1' incorporates:
12803 * Constant: '<S80>/Constant2'
12804 * Switch: '<S80>/Switch2'
12805 */
12806 if (L4_MABX_B.RelationalOperator_oq) {
12807 /* Product: '<S80>/Product3' incorporates:
12808 * Constant: '<S80>/SteeringControlNewIGain1'
12809 */
12810 L4_MABX_B.Product3 = L4_MABX_B.mm2m *
12811 L4_MABX_P.SteeringControlNewIGain1_Value;
12812 L4_MABX_B.Switch1_p = L4_MABX_B.Product3;
12813
12814 /* Gain: '<S80>/deg2rad' */
12815 L4_MABX_B.deg2rad_d = L4_MABX_P.deg2rad_Gain * L4_MABX_B.SFunction1_o1_in;
12816
12817 /* Product: '<S80>/Product2' incorporates:
12818 * Constant: '<S80>/SteeringControlNewPGain1'
12819 */
12820 L4_MABX_B.Product2_my = L4_MABX_B.deg2rad_d *
12821 L4_MABX_P.SteeringControlNewPGain1_Value;
12822 L4_MABX_B.Switch2_i1 = L4_MABX_B.Product2_my;
12823 } else {
12824 L4_MABX_B.Switch1_p = L4_MABX_P.Constant2_Value_n;
12825 L4_MABX_B.Switch2_i1 = L4_MABX_B.UnitDelay_p;
12826 }
12827
12828 /* End of Switch: '<S80>/Switch1' */
12829
12830 /* RelationalOperator: '<S355>/min_relop' incorporates:
12831 * Constant: '<S355>/min_val'
12832 */
12833 L4_MABX_B.min_relop_k = (L4_MABX_P.CheckStaticLowerBound_min_o <=
12834 L4_MABX_B.Divide_e);
12835
12836 /* Assertion: '<S355>/Assertion' */
12837 utAssert(L4_MABX_B.min_relop_k);
12838
12839 /* Logic: '<S364>/Logical Operator2' */
12840 L4_MABX_B.LogicalOperator2_g = !L4_MABX_B.LogicalOperator1_ph;
12841
12842 /* Switch: '<S373>/Reset' incorporates:
12843 * Constant: '<S368>/CPV'
12844 */
12845 if (L4_MABX_B.LogicalOperator1_ja) {
12846 L4_MABX_B.Xnew = L4_MABX_P.CPV_Value_h;
12847 } else {
12848 L4_MABX_B.Xnew = L4_MABX_B.If_Then_Else_gf.Switch;
12849 }
12850
12851 /* End of Switch: '<S373>/Reset' */
12852
12853 /* UnitDelay: '<S375>/FixPt Unit Delay2' */
12854 L4_MABX_B.FixPtUnitDelay2_j = L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw;
12855
12856 /* Logic: '<S375>/FixPt Logical Operator' */
12857 L4_MABX_B.FixPtLogicalOperator_i = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
12858 (L4_MABX_B.FixPtUnitDelay2_j != 0));
12859
12860 /* UnitDelay: '<S375>/FixPt Unit Delay1' */
12861 L4_MABX_B.Xold_dp = L4_MABX_DW.FixPtUnitDelay1_DSTATE_pe;
12862
12863 /* Switch: '<S375>/Init' incorporates:
12864 * Constant: '<S369>/CPV'
12865 */
12866 if (L4_MABX_B.FixPtLogicalOperator_i != 0) {
12867 L4_MABX_B.Init_o = L4_MABX_P.CPV_Value_n;
12868 } else {
12869 L4_MABX_B.Init_o = L4_MABX_B.Xold_dp;
12870 }
12871
12872 /* End of Switch: '<S375>/Init' */
12873
12874 /* UnitDelay: '<S376>/FixPt Unit Delay2' */
12875 L4_MABX_B.FixPtUnitDelay2_m = L4_MABX_DW.FixPtUnitDelay2_DSTATE_g;
12876
12877 /* Logic: '<S376>/FixPt Logical Operator' */
12878 L4_MABX_B.FixPtLogicalOperator_b = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
12879 (L4_MABX_B.FixPtUnitDelay2_m != 0));
12880
12881 /* UnitDelay: '<S376>/FixPt Unit Delay1' */
12882 L4_MABX_B.Xold_mg = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g;
12883
12884 /* Switch: '<S376>/Init' incorporates:
12885 * Constant: '<S367>/CPV2'
12886 */
12887 if (L4_MABX_B.FixPtLogicalOperator_b != 0) {
12888 L4_MABX_B.Init_lg = L4_MABX_P.CPV2_Value_p;
12889 } else {
12890 L4_MABX_B.Init_lg = L4_MABX_B.Xold_mg;
12891 }
12892
12893 /* End of Switch: '<S376>/Init' */
12894
12895 /* MultiPortSwitch: '<S374>/Multiport Switch' incorporates:
12896 * Constant: '<S367>/CPV2'
12897 * Constant: '<S374>/Integrator_method'
12898 */
12899 switch ((int32_T)L4_MABX_P.Integrator_method_Value) {
12900 case 1:
12901 L4_MABX_B.MultiportSwitch_i = L4_MABX_P.CPV2_Value_p;
12902 break;
12903
12904 case 2:
12905 L4_MABX_B.MultiportSwitch_i = L4_MABX_B.Init_lg;
12906 break;
12907
12908 default:
12909 /* Sum: '<S374>/Add' incorporates:
12910 * Constant: '<S367>/CPV2'
12911 */
12912 L4_MABX_B.Add_py = L4_MABX_B.Init_lg + L4_MABX_P.CPV2_Value_p;
12913
12914 /* Gain: '<S374>/Gain' */
12915 L4_MABX_B.u_trapezoidal = L4_MABX_P.Gain_Gain_j * L4_MABX_B.Add_py;
12916 L4_MABX_B.MultiportSwitch_i = L4_MABX_B.u_trapezoidal;
12917 break;
12918 }
12919
12920 /* End of MultiPortSwitch: '<S374>/Multiport Switch' */
12921
12922 /* DigitalClock: '<S370>/Digital Clock' */
12923 L4_MABX_B.DigitalClock_d = L4_MABX_M->Timing.t[0];
12924
12925 /* UnitDelay: '<S370>/Unit_Delay' */
12926 L4_MABX_B.Unit_Delay_p = L4_MABX_DW.Unit_Delay_DSTATE_j;
12927
12928 /* Sum: '<S370>/Subtract' */
12929 L4_MABX_B.Subtract_k = L4_MABX_B.DigitalClock_d - L4_MABX_B.Unit_Delay_p;
12930
12931 /* Product: '<S369>/Product1' incorporates:
12932 * Constant: '<S367>/CPV'
12933 */
12934 L4_MABX_B.Product1_am = L4_MABX_P.CPV_Value_g * L4_MABX_B.MultiportSwitch_i *
12935 L4_MABX_B.Subtract_k;
12936
12937 /* Sum: '<S369>/Add' */
12938 L4_MABX_B.Add_db = L4_MABX_B.Init_o + L4_MABX_B.Product1_am;
12939
12940 /* Switch: '<S376>/Reset' incorporates:
12941 * Constant: '<S367>/CPV2'
12942 */
12943 L4_MABX_B.Xnew_f = L4_MABX_P.CPV2_Value_p;
12944
12945 /* Switch: '<S375>/Reset' incorporates:
12946 * Constant: '<S369>/CPV'
12947 */
12948 if (L4_MABX_B.LogicalOperator1_ja) {
12949 L4_MABX_B.Xnew_h = L4_MABX_P.CPV_Value_n;
12950 } else {
12951 L4_MABX_B.Xnew_h = L4_MABX_B.Add_db;
12952 }
12953
12954 /* End of Switch: '<S375>/Reset' */
12955
12956 /* RelationalOperator: '<S383>/min_relop' incorporates:
12957 * Constant: '<S347>/FCW_CTRL_SLEW_INC_APV'
12958 * Constant: '<S383>/min_val'
12959 */
12960 L4_MABX_B.min_relop_c = (L4_MABX_P.CheckStaticLowerBound_min_h <=
12961 L4_MABX_P.FCW_CTRL_SLEW_INC_APV_Value);
12962
12963 /* Assertion: '<S383>/Assertion' */
12964 utAssert(L4_MABX_B.min_relop_c);
12965
12966 /* RelationalOperator: '<S394>/min_relop' incorporates:
12967 * Constant: '<S349>/STABILITY_CTRL_SLEW_INC_APV'
12968 * Constant: '<S394>/min_val'
12969 */
12970 L4_MABX_B.min_relop_f = (L4_MABX_P.CheckStaticLowerBound_min_nz <=
12971 L4_MABX_P.STABILITY_CTRL_SLEW_INC_APV_Val);
12972
12973 /* Assertion: '<S394>/Assertion' */
12974 utAssert(L4_MABX_B.min_relop_f);
12975
12976 /* End of Outputs for SubSystem: '<S65>/Task_10ms' */
12977
12978 /* Outputs for Enabled SubSystem: '<S627>/PosRapidUpdate_011' incorporates:
12979 * EnablePort: '<S628>/Enable'
12980 */
12981 /* Constant: '<S450>/Constant' */
12982 if (L4_MABX_P.Constant_Value_kv > 0.0) {
12983 /* S-Function (rti_commonblock): '<S628>/S-Function1' */
12984 /* This comment workarounds a code generation problem */
12985
12986 /* dSPACE RTICAN RX Message Block: "PosRapidUpdate_01" Id:167248128 */
12987 {
12988 UInt32 *CAN_Msg;
12989 static dsfloat time_old = 0.0;
12990
12991 /* Read status and timestamp info (previous message) */
12992 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].timestamp !=
12993 time_old) {
12994 /* ... save timestamp info for the calculation of the RX status
12995 during the consecutive sample hit*/
12996 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].
12997 timestamp;
12998
12999 /* ... set the processed flag to one */
13000 L4_MABX_B.SFunction1_o3_cb = 1.0;
13001 L4_MABX_B.SFunction1_o4_b5 = (real_T)
13002 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].timestamp;
13003 L4_MABX_B.SFunction1_o5_e = (real_T)
13004 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].deltatime;
13005 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].data;
13006
13007 /* Decode CAN message */
13008 {
13009 {
13010 rtican_Signal_t CAN_Sgn;
13011
13012 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
13013 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
13014 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
13015 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
13016 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
13017 L4_MABX_B.SFunction1_o1_c1 = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
13018 );
13019
13020 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
13021 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
13022 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
13023 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
13024 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
13025 L4_MABX_B.SFunction1_o2_fm = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
13026 );
13027 }
13028 }
13029 } else {
13030 /* set RX status to 0 because no new message has arrived */
13031 L4_MABX_B.SFunction1_o3_cb = 0.0;
13032 }
13033 }
13034 }
13035
13036 /* End of Outputs for SubSystem: '<S627>/PosRapidUpdate_011' */
13037
13038 /* Outputs for Atomic SubSystem: '<S468>/If_Then_Else' */
13039
13040 /* Constant: '<S468>/useGPSSA00' incorporates:
13041 * Constant: '<S468>/useGPSSA0'
13042 */
13043 L4_MABX_If_Then_Else3(L4_MABX_B.LogicalOperator1_p, L4_MABX_P.useGPSSA00_Value,
13044 L4_MABX_P.useGPSSA0_Value, &L4_MABX_B.If_Then_Else);
13045
13046 /* End of Outputs for SubSystem: '<S468>/If_Then_Else' */
13047
13048 /* Outputs for Enabled SubSystem: '<S627>/PosRapidUpdate_1' incorporates:
13049 * EnablePort: '<S629>/Enable'
13050 */
13051 /* Constant: '<S450>/Constant' */
13052 if (L4_MABX_P.Constant_Value_kv > 0.0) {
13053 /* S-Function (rti_commonblock): '<S629>/S-Function1' */
13054 /* This comment workarounds a code generation problem */
13055
13056 /* dSPACE RTICAN RX Message Block: "PosRapidUpdate_01" Id:167248129 */
13057 {
13058 UInt32 *CAN_Msg;
13059 static dsfloat time_old = 0.0;
13060
13061 /* Read status and timestamp info (previous message) */
13062 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].timestamp !=
13063 time_old) {
13064 /* ... save timestamp info for the calculation of the RX status
13065 during the consecutive sample hit*/
13066 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].
13067 timestamp;
13068
13069 /* ... set the processed flag to one */
13070 L4_MABX_B.SFunction1_o3_og = 1.0;
13071 L4_MABX_B.SFunction1_o4_p0 = (real_T)
13072 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].timestamp;
13073 L4_MABX_B.SFunction1_o5_p = (real_T)
13074 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].deltatime;
13075 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].data;
13076
13077 /* Decode CAN message */
13078 {
13079 {
13080 rtican_Signal_t CAN_Sgn;
13081
13082 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
13083 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
13084 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
13085 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
13086 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
13087 L4_MABX_B.SFunction1_o1_a5 = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
13088 );
13089
13090 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
13091 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
13092 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
13093 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
13094 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
13095 L4_MABX_B.SFunction1_o2_kr = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
13096 );
13097 }
13098 }
13099 } else {
13100 /* set RX status to 0 because no new message has arrived */
13101 L4_MABX_B.SFunction1_o3_og = 0.0;
13102 }
13103 }
13104 }
13105
13106 /* End of Outputs for SubSystem: '<S627>/PosRapidUpdate_1' */
13107
13108 /* Switch: '<S627>/Switch' */
13109 if (L4_MABX_B.If_Then_Else.Switch) {
13110 L4_MABX_B.Latitude_ = L4_MABX_B.SFunction1_o1_c1;
13111 L4_MABX_B.Longitude_ = L4_MABX_B.SFunction1_o2_fm;
13112 } else {
13113 L4_MABX_B.Latitude_ = L4_MABX_B.SFunction1_o1_a5;
13114 L4_MABX_B.Longitude_ = L4_MABX_B.SFunction1_o2_kr;
13115 }
13116
13117 /* Outputs for Enabled SubSystem: '<S507>/CCVS1_00' incorporates:
13118 * EnablePort: '<S508>/Enable'
13119 */
13120 /* Constant: '<S431>/Constant' */
13121 if (L4_MABX_P.Constant_Value_dp) {
13122 /* S-Function (rti_commonblock): '<S508>/S-Function1' */
13123 /* This comment workarounds a code generation problem */
13124
13125 /* dSPACE RTICAN RX Message Block: "CCVS1_00" Id:218034432 */
13126 {
13127 UInt32 *CAN_Msg;
13128 static dsfloat time_old = 0.0;
13129
13130 /* Read status and timestamp info (previous message) */
13131 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].timestamp !=
13132 time_old) {
13133 /* ... save timestamp info for the calculation of the RX status
13134 during the consecutive sample hit*/
13135 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].
13136 timestamp;
13137
13138 /* ... set the processed flag to one */
13139 L4_MABX_B.SFunction1_o21_g = 1.0;
13140 L4_MABX_B.SFunction1_o22_b = (real_T)
13141 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].timestamp;
13142 L4_MABX_B.SFunction1_o23_d = (real_T)
13143 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].deltatime;
13144 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].data;
13145
13146 /* Decode CAN message */
13147 {
13148 {
13149 rtican_Signal_t CAN_Sgn;
13150
13151 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
13152 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
13153 CAN_Sgn.UnsignedSgn &= 0x00000003;
13154 L4_MABX_B.SFunction1_o1_ap = ((real_T) CAN_Sgn.UnsignedSgn);
13155
13156 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
13157 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
13158 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
13159 CAN_Sgn.UnsignedSgn &= 0x00000003;
13160 L4_MABX_B.SFunction1_o2_ge = ((real_T) CAN_Sgn.UnsignedSgn);
13161
13162 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
13163 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
13164 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
13165 CAN_Sgn.UnsignedSgn &= 0x00000003;
13166 L4_MABX_B.SFunction1_o3_kf = ((real_T) CAN_Sgn.UnsignedSgn);
13167
13168 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
13169 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
13170 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
13171 CAN_Sgn.UnsignedSgn &= 0x00000003;
13172 L4_MABX_B.SFunction1_o4_ay = ((real_T) CAN_Sgn.UnsignedSgn);
13173
13174 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
13175 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
13176 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
13177 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13178 WheelBasedVehicleSpeed = 0.00390625 * ( ((real_T)
13179 CAN_Sgn.UnsignedSgn) );
13180
13181 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
13182 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
13183 CAN_Sgn.UnsignedSgn &= 0x00000003;
13184 L4_MABX_B.SFunction1_o6_i = ((real_T) CAN_Sgn.UnsignedSgn);
13185
13186 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
13187 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
13188 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
13189 CAN_Sgn.UnsignedSgn &= 0x00000003;
13190 L4_MABX_B.SFunction1_o7_bt = ((real_T) CAN_Sgn.UnsignedSgn);
13191
13192 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
13193 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
13194 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
13195 CAN_Sgn.UnsignedSgn &= 0x00000003;
13196 BrakeSwitch = ((real_T) CAN_Sgn.UnsignedSgn);
13197
13198 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
13199 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
13200 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
13201 CAN_Sgn.UnsignedSgn &= 0x00000003;
13202 L4_MABX_B.SFunction1_o9_ey = ((real_T) CAN_Sgn.UnsignedSgn);
13203
13204 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
13205 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
13206 CAN_Sgn.UnsignedSgn &= 0x00000003;
13207 L4_MABX_B.SFunction1_o10_gs = ((real_T) CAN_Sgn.UnsignedSgn);
13208
13209 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
13210 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
13211 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
13212 CAN_Sgn.UnsignedSgn &= 0x00000003;
13213 L4_MABX_B.SFunction1_o11_hb = ((real_T) CAN_Sgn.UnsignedSgn);
13214
13215 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
13216 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
13217 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
13218 CAN_Sgn.UnsignedSgn &= 0x00000003;
13219 L4_MABX_B.SFunction1_o12_j = ((real_T) CAN_Sgn.UnsignedSgn);
13220
13221 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
13222 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
13223 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
13224 CAN_Sgn.UnsignedSgn &= 0x00000003;
13225 L4_MABX_B.SFunction1_o13_m = ((real_T) CAN_Sgn.UnsignedSgn);
13226
13227 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
13228 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
13229 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13230 L4_MABX_B.SFunction1_o14_gr = ((real_T) CAN_Sgn.UnsignedSgn);
13231
13232 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
13233 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
13234 CAN_Sgn.UnsignedSgn &= 0x0000001F;
13235 L4_MABX_B.SFunction1_o15_a = ((real_T) CAN_Sgn.UnsignedSgn);
13236
13237 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
13238 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
13239 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 5;
13240 CAN_Sgn.UnsignedSgn &= 0x00000007;
13241 L4_MABX_B.SFunction1_o16_o = ((real_T) CAN_Sgn.UnsignedSgn);
13242
13243 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
13244 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
13245 CAN_Sgn.UnsignedSgn &= 0x00000003;
13246 L4_MABX_B.SFunction1_o17_c = ((real_T) CAN_Sgn.UnsignedSgn);
13247
13248 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
13249 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
13250 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
13251 CAN_Sgn.UnsignedSgn &= 0x00000003;
13252 L4_MABX_B.SFunction1_o18_e = ((real_T) CAN_Sgn.UnsignedSgn);
13253
13254 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
13255 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
13256 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
13257 CAN_Sgn.UnsignedSgn &= 0x00000003;
13258 L4_MABX_B.SFunction1_o19_g = ((real_T) CAN_Sgn.UnsignedSgn);
13259
13260 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
13261 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
13262 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
13263 CAN_Sgn.UnsignedSgn &= 0x00000003;
13264 L4_MABX_B.SFunction1_o20_j = ((real_T) CAN_Sgn.UnsignedSgn);
13265 }
13266 }
13267 } else {
13268 /* set RX status to 0 because no new message has arrived */
13269 L4_MABX_B.SFunction1_o21_g = 0.0;
13270 }
13271 }
13272 }
13273
13274 /* End of Constant: '<S431>/Constant' */
13275 /* End of Outputs for SubSystem: '<S507>/CCVS1_00' */
13276
13277 /* Outputs for Enabled SubSystem: '<S511>/COGSOGRapidUpdate_00' incorporates:
13278 * EnablePort: '<S512>/Enable'
13279 */
13280 /* Constant: '<S433>/Constant' */
13281 if (L4_MABX_P.Constant_Value_hb > 0.0) {
13282 /* S-Function (rti_commonblock): '<S512>/S-Function1' */
13283 /* This comment workarounds a code generation problem */
13284
13285 /* dSPACE RTICAN RX Message Block: "COGSOGRapidUpdate_00" Id:167248384 */
13286 {
13287 UInt32 *CAN_Msg;
13288 static dsfloat time_old = 0.0;
13289
13290 /* Read status and timestamp info (previous message) */
13291 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].timestamp !=
13292 time_old) {
13293 /* ... save timestamp info for the calculation of the RX status
13294 during the consecutive sample hit*/
13295 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].
13296 timestamp;
13297
13298 /* ... set the processed flag to one */
13299 L4_MABX_B.SFunction1_o5_hr = 1.0;
13300 L4_MABX_B.SFunction1_o6_n = (real_T)
13301 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].timestamp;
13302 L4_MABX_B.SFunction1_o7_h = (real_T)
13303 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].deltatime;
13304 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].data;
13305
13306 /* Decode CAN message */
13307 {
13308 {
13309 rtican_Signal_t CAN_Sgn;
13310
13311 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
13312 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
13313 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13314 L4_MABX_B.SFunction1_o1_eg = ((real_T) CAN_Sgn.UnsignedSgn);
13315
13316 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
13317 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
13318 CAN_Sgn.UnsignedSgn &= 0x00000003;
13319 L4_MABX_B.SFunction1_o2_by = ((real_T) CAN_Sgn.UnsignedSgn);
13320
13321 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
13322 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
13323 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
13324 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13325 L4_MABX_B.SFunction1_o3_iu = 0.0001 * ( ((real_T)
13326 CAN_Sgn.UnsignedSgn) );
13327
13328 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
13329 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
13330 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
13331 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13332 L4_MABX_B.SFunction1_o4_am = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
13333 );
13334 }
13335 }
13336 } else {
13337 /* set RX status to 0 because no new message has arrived */
13338 L4_MABX_B.SFunction1_o5_hr = 0.0;
13339 }
13340 }
13341 }
13342
13343 /* End of Outputs for SubSystem: '<S511>/COGSOGRapidUpdate_00' */
13344
13345 /* DataTypeConversion: '<S511>/Data Type Conversion8' */
13346 L4_MABX_B.RX_status_i = (L4_MABX_B.SFunction1_o5_hr != 0.0);
13347
13348 /* Outputs for Enabled SubSystem: '<S511>/COGSOGRapidUpdate_1' incorporates:
13349 * EnablePort: '<S513>/Enable'
13350 */
13351 /* Constant: '<S433>/Constant' */
13352 if (L4_MABX_P.Constant_Value_hb > 0.0) {
13353 /* S-Function (rti_commonblock): '<S513>/S-Function1' */
13354 /* This comment workarounds a code generation problem */
13355
13356 /* dSPACE RTICAN RX Message Block: "COGSOGRapidUpdate_00" Id:167248385 */
13357 {
13358 UInt32 *CAN_Msg;
13359 static dsfloat time_old = 0.0;
13360
13361 /* Read status and timestamp info (previous message) */
13362 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].timestamp !=
13363 time_old) {
13364 /* ... save timestamp info for the calculation of the RX status
13365 during the consecutive sample hit*/
13366 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].
13367 timestamp;
13368
13369 /* ... set the processed flag to one */
13370 L4_MABX_B.SFunction1_o5_k0 = 1.0;
13371 L4_MABX_B.SFunction1_o6_lx = (real_T)
13372 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].timestamp;
13373 L4_MABX_B.SFunction1_o7_f4 = (real_T)
13374 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].deltatime;
13375 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].data;
13376
13377 /* Decode CAN message */
13378 {
13379 {
13380 rtican_Signal_t CAN_Sgn;
13381
13382 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
13383 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
13384 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13385 L4_MABX_B.SFunction1_o1_h4 = ((real_T) CAN_Sgn.UnsignedSgn);
13386
13387 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
13388 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
13389 CAN_Sgn.UnsignedSgn &= 0x00000003;
13390 L4_MABX_B.SFunction1_o2_aq = ((real_T) CAN_Sgn.UnsignedSgn);
13391
13392 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
13393 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
13394 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
13395 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13396 L4_MABX_B.SFunction1_o3_es = 0.0001 * ( ((real_T)
13397 CAN_Sgn.UnsignedSgn) );
13398
13399 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
13400 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
13401 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
13402 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13403 L4_MABX_B.SFunction1_o4_lx = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
13404 );
13405 }
13406 }
13407 } else {
13408 /* set RX status to 0 because no new message has arrived */
13409 L4_MABX_B.SFunction1_o5_k0 = 0.0;
13410 }
13411 }
13412 }
13413
13414 /* End of Outputs for SubSystem: '<S511>/COGSOGRapidUpdate_1' */
13415
13416 /* Switch: '<S511>/Switch' */
13417 if (L4_MABX_B.RX_status_i) {
13418 L4_MABX_B.SID = L4_MABX_B.SFunction1_o1_eg;
13419 L4_MABX_B.COGReference = L4_MABX_B.SFunction1_o2_by;
13420 L4_MABX_B.CourseOverGround = L4_MABX_B.SFunction1_o3_iu;
13421 L4_MABX_B.SpeedOverGround = L4_MABX_B.SFunction1_o4_am;
13422 } else {
13423 L4_MABX_B.SID = L4_MABX_B.SFunction1_o1_h4;
13424 L4_MABX_B.COGReference = L4_MABX_B.SFunction1_o2_aq;
13425 L4_MABX_B.CourseOverGround = L4_MABX_B.SFunction1_o3_es;
13426 L4_MABX_B.SpeedOverGround = L4_MABX_B.SFunction1_o4_lx;
13427 }
13428
13429 /* Outputs for Atomic SubSystem: '<S851>/CAN_TX_100ms' */
13430
13431 /* RateTransition: '<S888>/TmpRTBAtHiddenBuf_InsertedFor_Rolling_15_counter_at_inport_0Inport1' */
13432 if (L4_MABX_M->Timing.RateInteraction.TID0_3 == 1) {
13433 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R = AutonomousOutputEnabled;
13434
13435 /* RateTransition: '<S906>/TmpRTBAtOperatorInport1' */
13436 L4_MABX_B.TmpRTBAtOperatorInport1 = AutonomousOutputEnabled;
13437
13438 /* RateTransition: '<S909>/TmpRTBAtOperatorInport1' */
13439 L4_MABX_B.TmpRTBAtOperatorInport1_i = AutonomousOutputEnabled;
13440
13441 /* RateTransition: '<S900>/TmpRTBAtOperatorInport1' */
13442 L4_MABX_B.TmpRTBAtOperatorInport1_h = AutonomousOutputEnabled;
13443
13444 /* RateTransition: '<S901>/TmpRTBAtOperatorInport1' */
13445 L4_MABX_B.TmpRTBAtOperatorInport1_p = AutonomousOutputEnabled;
13446
13447 /* RateTransition: '<S907>/TmpRTBAtOperatorInport1' */
13448 L4_MABX_B.TmpRTBAtOperatorInport1_b = AutonomousOutputEnabled;
13449
13450 /* RateTransition: '<S908>/TmpRTBAtOperatorInport1' */
13451 L4_MABX_B.TmpRTBAtOperatorInport1_ij = AutonomousOutputEnabled;
13452 L4_MABX_B.Latitude__n = L4_MABX_B.Latitude_;
13453 L4_MABX_B.Longitude__i = L4_MABX_B.Longitude_;
13454 L4_MABX_B.TwoSpeedAxleSwitch_a = L4_MABX_B.SFunction1_o1_ap;
13455 L4_MABX_B.ParkingBrakeSwitch_a = L4_MABX_B.SFunction1_o2_ge;
13456 L4_MABX_B.CruiseCtrlPauseSwitch_g = L4_MABX_B.SFunction1_o3_kf;
13457 L4_MABX_B.ParkBrakeReleaseInhibitRq_o = L4_MABX_B.SFunction1_o4_ay;
13458 L4_MABX_B.WheelBasedVehicleSpeed_lc = WheelBasedVehicleSpeed;
13459 L4_MABX_B.CruiseCtrlActive_j = L4_MABX_B.SFunction1_o6_i;
13460 L4_MABX_B.CruiseCtrlEnableSwitch_en = L4_MABX_B.SFunction1_o7_bt;
13461 L4_MABX_B.BrakeSwitch_is = BrakeSwitch;
13462 L4_MABX_B.ClutchSwitch_c = L4_MABX_B.SFunction1_o9_ey;
13463 L4_MABX_B.CruiseCtrlSetSwitch_n = L4_MABX_B.SFunction1_o10_gs;
13464 L4_MABX_B.CruiseCtrlCoastSwitch_f = L4_MABX_B.SFunction1_o11_hb;
13465 L4_MABX_B.CruiseCtrlResumeSwitch_k = L4_MABX_B.SFunction1_o12_j;
13466 L4_MABX_B.CruiseCtrlAccelerateSwitch_n = L4_MABX_B.SFunction1_o13_m;
13467 L4_MABX_B.CruiseCtrlSetSpeed_k = L4_MABX_B.SFunction1_o14_gr;
13468 L4_MABX_B.PTOGovernorState_f = L4_MABX_B.SFunction1_o15_a;
13469 L4_MABX_B.CruiseCtrlStates_n = L4_MABX_B.SFunction1_o16_o;
13470 L4_MABX_B.EngIdleIncrementSwitch_f = L4_MABX_B.SFunction1_o17_c;
13471 L4_MABX_B.EngIdleDecrementSwitch_k = L4_MABX_B.SFunction1_o18_e;
13472 L4_MABX_B.EngTestModeSwitch_i = L4_MABX_B.SFunction1_o19_g;
13473 L4_MABX_B.EngShutdownOverrideSwitch_f = L4_MABX_B.SFunction1_o20_j;
13474 L4_MABX_B.TwoSpeedAxleSwitch_as = L4_MABX_B.SFunction1_o1_ap;
13475 L4_MABX_B.ParkingBrakeSwitch_ac = L4_MABX_B.SFunction1_o2_ge;
13476 L4_MABX_B.CruiseCtrlPauseSwitch_gt = L4_MABX_B.SFunction1_o3_kf;
13477 L4_MABX_B.ParkBrakeReleaseInhibitRq_ot = L4_MABX_B.SFunction1_o4_ay;
13478 L4_MABX_B.WheelBasedVehicleSpeed_lcd = WheelBasedVehicleSpeed;
13479 L4_MABX_B.CruiseCtrlActive_jk = L4_MABX_B.SFunction1_o6_i;
13480 L4_MABX_B.CruiseCtrlEnableSwitch_enw = L4_MABX_B.SFunction1_o7_bt;
13481 L4_MABX_B.BrakeSwitch_isk = BrakeSwitch;
13482 L4_MABX_B.ClutchSwitch_co = L4_MABX_B.SFunction1_o9_ey;
13483 L4_MABX_B.CruiseCtrlSetSwitch_nl = L4_MABX_B.SFunction1_o10_gs;
13484 L4_MABX_B.CruiseCtrlCoastSwitch_fn = L4_MABX_B.SFunction1_o11_hb;
13485 L4_MABX_B.CruiseCtrlResumeSwitch_ku = L4_MABX_B.SFunction1_o12_j;
13486 L4_MABX_B.CruiseCtrlAccelerateSwitch_no = L4_MABX_B.SFunction1_o13_m;
13487 L4_MABX_B.CruiseCtrlSetSpeed_kj = L4_MABX_B.SFunction1_o14_gr;
13488 L4_MABX_B.PTOGovernorState_ff = L4_MABX_B.SFunction1_o15_a;
13489 L4_MABX_B.CruiseCtrlStates_ng = L4_MABX_B.SFunction1_o16_o;
13490 L4_MABX_B.EngIdleIncrementSwitch_fj = L4_MABX_B.SFunction1_o17_c;
13491 L4_MABX_B.EngIdleDecrementSwitch_kc = L4_MABX_B.SFunction1_o18_e;
13492 L4_MABX_B.EngTestModeSwitch_if = L4_MABX_B.SFunction1_o19_g;
13493 L4_MABX_B.EngShutdownOverrideSwitch_fs = L4_MABX_B.SFunction1_o20_j;
13494 L4_MABX_B.SID_a = L4_MABX_B.SID;
13495 L4_MABX_B.COGReference_f = L4_MABX_B.COGReference;
13496 L4_MABX_B.CourseOverGround_k = L4_MABX_B.CourseOverGround;
13497 L4_MABX_B.SpeedOverGround_i = L4_MABX_B.SpeedOverGround;
13498 L4_MABX_B.ASREngCtrlActive = L4_MABX_B.SFunction1_o1_oq;
13499 L4_MABX_B.ASRBrakeCtrlActive = L4_MABX_B.SFunction1_o2_iw;
13500 L4_MABX_B.AntiLockBrakingActive = L4_MABX_B.SFunction1_o3_ix;
13501 L4_MABX_B.EBSBrakeSwitch_o = L4_MABX_B.SFunction1_o4_h5;
13502 L4_MABX_B.BrakePedalPos = L4_MABX_B.SFunction1_o5_fy;
13503 L4_MABX_B.ABSOffroadSwitch = L4_MABX_B.SFunction1_o6_ok;
13504 L4_MABX_B.ASROffroadSwitch = L4_MABX_B.SFunction1_o7_f;
13505 L4_MABX_B.ASRHillHolderSwitch = L4_MABX_B.SFunction1_o8_ge;
13506 L4_MABX_B.TractionCtrlOverrideSwitch = L4_MABX_B.SFunction1_o9_er;
13507 L4_MABX_B.AccelInterlockSwitch = L4_MABX_B.SFunction1_o10_a;
13508 L4_MABX_B.EngDerateSwitch = L4_MABX_B.SFunction1_o11_f;
13509 L4_MABX_B.EngAuxShutdownSwitch = L4_MABX_B.SFunction1_o12_e;
13510 L4_MABX_B.RemoteAccelEnableSwitch = L4_MABX_B.SFunction1_o13_o;
13511 L4_MABX_B.EngRetarderSelection = L4_MABX_B.SFunction1_o14_o;
13512 L4_MABX_B.ABSFullyOperational = L4_MABX_B.SFunction1_o15_p;
13513 L4_MABX_B.EBSRedWarningSignal = L4_MABX_B.SFunction1_o16_k;
13514 L4_MABX_B.ABS_EBSAmberWarningSignal = L4_MABX_B.SFunction1_o17_e;
13515 L4_MABX_B.ATC_ASRInformationSignal = L4_MABX_B.SFunction1_o18_b;
13516 L4_MABX_B.SrcAddrssOfCtrllngDvcFrBrkCntrl = L4_MABX_B.SFunction1_o19_j;
13517 L4_MABX_B.HaltBrakeSwitch = L4_MABX_B.SFunction1_o20_a;
13518 L4_MABX_B.TrailerABSStatus = L4_MABX_B.SFunction1_o21_o;
13519 L4_MABX_B.TrctrMntdTrilerABSWarningSignal = L4_MABX_B.SFunction1_o22_p;
13520 }
13521
13522 /* End of Outputs for SubSystem: '<S851>/CAN_TX_100ms' */
13523
13524 /* Outputs for Atomic SubSystem: '<S851>/CAN_TX_10ms' */
13525
13526 /* DataTypeConversion: '<S953>/Data Type Conversion4' */
13527 L4_MABX_B.DataTypeConversion4_f = L4_MABX_B.Diff;
13528
13529 /* DataTypeConversion: '<S942>/Data Type Conversion' incorporates:
13530 * Constant: '<S856>/CANT_ACCS_E4_CHANNEL_APV'
13531 */
13532 L4_MABX_B.DataTypeConversion_ox = (uint8_T)
13533 L4_MABX_P.CANT_ACCS_E4_CHANNEL_APV_Value;
13534
13535 /* S-Function (sfix_bitop): '<S950>/Operator' */
13536 L4_MABX_B.Operator_dl = (uint8_T)(L4_MABX_B.DataTypeConversion_ox &
13537 L4_MABX_P.Operator_BitMask_ox);
13538
13539 /* DataTypeConversion: '<S950>/DataType' */
13540 L4_MABX_B.DataType_cj = L4_MABX_B.Operator_dl;
13541
13542 /* ArithShift: '<S942>/Shift_Arithmetic 2' */
13543 L4_MABX_B.Shift_Arithmetic2_n = ldexp(L4_MABX_B.DataType_cj, (-3));
13544
13545 /* DataTypeConversion: '<S942>/Data Type Conversion5' */
13546 L4_MABX_B.DataTypeConversion5_nx = (L4_MABX_B.Shift_Arithmetic2_n != 0.0);
13547
13548 /* Outputs for Enabled SubSystem: '<S953>/ACCS' incorporates:
13549 * EnablePort: '<S954>/Enable'
13550 */
13551 if (L4_MABX_B.DataTypeConversion5_nx) {
13552 /* S-Function (rti_commonblock): '<S954>/S-Function1' */
13553 /* This comment workarounds a code generation problem */
13554
13555 /* dSPACE RTICAN TX Message Block: "ACCS" Id:418393572 */
13556 {
13557 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13558
13559 Float32 delayTime = 0.0;
13560
13561 /* ... Read status and timestamp info (previous message) */
13562 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]);
13563
13564 /* Convert timestamp */
13565 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->processed) {
13566 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp =
13567 rtk_dsts_time_to_simtime_convert
13568 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp);
13569 }
13570
13571 /* Messages with timestamp zero have been received in pause/stop state
13572 and must not be handled.
13573 */
13574 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp > 0.0) {
13575 L4_MABX_B.SFunction1_o1_hp = (real_T)
13576 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->processed;
13577 L4_MABX_B.SFunction1_o2_d = (real_T)
13578 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp;
13579 L4_MABX_B.SFunction1_o3_a = (real_T)
13580 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->deltatime;
13581 L4_MABX_B.SFunction1_o4_fy = (real_T)
13582 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->delaytime;
13583 }
13584
13585 /* ... Encode Simulink signals of TX and RM blocks*/
13586 {
13587 rtican_Signal_t CAN_Sgn;
13588
13589 /* ...... "LongitudinalAccelerationExRange" (16|16, standard signal, unsigned int, little endian) */
13590 /* Add or substract 0.5 in order to round to nearest integer */
13591 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_f -
13592 ( -320 ) ) / 0.01 + 0.5);
13593 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13594 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13595 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
13596 }
13597
13598 /* mask unused bits with '1' */
13599 CAN_Msg[0] |= 0xFF;
13600 CAN_Msg[1] |= 0xFF;
13601 CAN_Msg[4] |= 0xFF;
13602 CAN_Msg[5] |= 0xFF;
13603 CAN_Msg[6] |= 0xFF;
13604 CAN_Msg[7] |= 0xFF;
13605
13606 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13607 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4], 8,
13608 &(CAN_Msg[0]), delayTime);
13609 }
13610 }
13611
13612 /* End of Outputs for SubSystem: '<S953>/ACCS' */
13613
13614 /* S-Function (sfix_bitop): '<S947>/Operator' */
13615 L4_MABX_B.Operator_cs = (uint8_T)(L4_MABX_B.DataTypeConversion_ox &
13616 L4_MABX_P.Operator_BitMask_gmr);
13617
13618 /* DataTypeConversion: '<S947>/DataType' */
13619 L4_MABX_B.DataType_l = L4_MABX_B.Operator_cs;
13620
13621 /* S-Function (sfix_bitop): '<S948>/Operator' */
13622 L4_MABX_B.Operator_jm = (uint8_T)(L4_MABX_B.DataTypeConversion_ox &
13623 L4_MABX_P.Operator_BitMask_oz);
13624
13625 /* DataTypeConversion: '<S948>/DataType' */
13626 L4_MABX_B.DataType_j = L4_MABX_B.Operator_jm;
13627
13628 /* S-Function (sfix_bitop): '<S949>/Operator' */
13629 L4_MABX_B.Operator_px = (uint8_T)(L4_MABX_B.DataTypeConversion_ox &
13630 L4_MABX_P.Operator_BitMask_n);
13631
13632 /* DataTypeConversion: '<S949>/DataType' */
13633 L4_MABX_B.DataType_m = L4_MABX_B.Operator_px;
13634
13635 /* S-Function (sfix_bitop): '<S951>/Operator' */
13636 L4_MABX_B.Operator_pp = (uint8_T)(L4_MABX_B.DataTypeConversion_ox &
13637 L4_MABX_P.Operator_BitMask_i);
13638
13639 /* DataTypeConversion: '<S951>/DataType' */
13640 L4_MABX_B.DataType_jo = L4_MABX_B.Operator_pp;
13641
13642 /* S-Function (sfix_bitop): '<S952>/Operator' */
13643 L4_MABX_B.Operator_l5 = (uint8_T)(L4_MABX_B.DataTypeConversion_ox &
13644 L4_MABX_P.Operator_BitMask_bk);
13645
13646 /* DataTypeConversion: '<S952>/DataType' */
13647 L4_MABX_B.DataType_g = L4_MABX_B.Operator_l5;
13648
13649 /* DataTypeConversion: '<S942>/Data Type Conversion2' */
13650 L4_MABX_B.DataTypeConversion2_gkw = (L4_MABX_B.DataType_l != 0);
13651
13652 /* ArithShift: '<S942>/Shift_Arithmetic ' */
13653 L4_MABX_B.Shift_Arithmetic_a = ldexp(L4_MABX_B.DataType_j, (-1));
13654
13655 /* DataTypeConversion: '<S942>/Data Type Conversion3' */
13656 L4_MABX_B.DataTypeConversion3_bx = (L4_MABX_B.Shift_Arithmetic_a != 0.0);
13657
13658 /* ArithShift: '<S942>/Shift_Arithmetic 1' */
13659 L4_MABX_B.Shift_Arithmetic1_i = ldexp(L4_MABX_B.DataType_m, (-2));
13660
13661 /* DataTypeConversion: '<S942>/Data Type Conversion4' */
13662 L4_MABX_B.DataTypeConversion4_kl = (L4_MABX_B.Shift_Arithmetic1_i != 0.0);
13663
13664 /* ArithShift: '<S942>/Shift_Arithmetic 3' */
13665 L4_MABX_B.Shift_Arithmetic3_a = ldexp(L4_MABX_B.DataType_jo, (-4));
13666
13667 /* DataTypeConversion: '<S942>/Data Type Conversion6' */
13668 L4_MABX_B.DataTypeConversion6_nj = (L4_MABX_B.Shift_Arithmetic3_a != 0.0);
13669
13670 /* ArithShift: '<S942>/Shift_Arithmetic 4' */
13671 L4_MABX_B.Shift_Arithmetic4_h = ldexp(L4_MABX_B.DataType_g, (-5));
13672
13673 /* DataTypeConversion: '<S942>/Data Type Conversion7' */
13674 L4_MABX_B.DataTypeConversion7_i = (L4_MABX_B.Shift_Arithmetic4_h != 0.0);
13675
13676 /* DataTypeConversion: '<S961>/Data Type Conversion1' */
13677 L4_MABX_B.DataTypeConversion1_iq = L4_MABX_B.SFunction1_o2_p0;
13678
13679 /* DataTypeConversion: '<S961>/Data Type Conversion2' */
13680 L4_MABX_B.DataTypeConversion2_m4 = L4_MABX_B.SFunction1_o3_n1;
13681
13682 /* DataTypeConversion: '<S961>/Data Type Conversion3' */
13683 L4_MABX_B.DataTypeConversion3_o = L4_MABX_B.SFunction1_o4_j0;
13684
13685 /* DataTypeConversion: '<S961>/Data Type Conversion4' */
13686 L4_MABX_B.DataTypeConversion4_f0 = L4_MABX_B.SFunction1_o1_od;
13687
13688 /* DataTypeConversion: '<S961>/Data Type Conversion5' */
13689 L4_MABX_B.DataTypeConversion5_a = L4_MABX_B.SFunction1_o5_mg;
13690
13691 /* DataTypeConversion: '<S961>/Data Type Conversion6' */
13692 L4_MABX_B.DataTypeConversion6_p = L4_MABX_B.SFunction1_o6_k3;
13693
13694 /* DataTypeConversion: '<S961>/Data Type Conversion7' */
13695 L4_MABX_B.DataTypeConversion7_e = L4_MABX_B.SFunction1_o7_ow;
13696
13697 /* DataTypeConversion: '<S961>/Data Type Conversion8' */
13698 L4_MABX_B.DataTypeConversion8_d = L4_MABX_B.SFunction1_o8_gl;
13699
13700 /* DataTypeConversion: '<S943>/Data Type Conversion' incorporates:
13701 * Constant: '<S856>/CANT_EEC1_00_CHANNEL_APV'
13702 */
13703 L4_MABX_B.DataTypeConversion_bf = (uint8_T)
13704 L4_MABX_P.CANT_EEC1_00_CHANNEL_APV_Value;
13705
13706 /* S-Function (sfix_bitop): '<S958>/Operator' */
13707 L4_MABX_B.Operator_ek = (uint8_T)(L4_MABX_B.DataTypeConversion_bf &
13708 L4_MABX_P.Operator_BitMask_ih);
13709
13710 /* DataTypeConversion: '<S958>/DataType' */
13711 L4_MABX_B.DataType_b = L4_MABX_B.Operator_ek;
13712
13713 /* ArithShift: '<S943>/Shift_Arithmetic 2' */
13714 L4_MABX_B.Shift_Arithmetic2_g = ldexp(L4_MABX_B.DataType_b, (-3));
13715
13716 /* DataTypeConversion: '<S943>/Data Type Conversion5' */
13717 L4_MABX_B.DataTypeConversion5_af = (L4_MABX_B.Shift_Arithmetic2_g != 0.0);
13718
13719 /* Outputs for Enabled SubSystem: '<S961>/EEC1_00' incorporates:
13720 * EnablePort: '<S963>/Enable'
13721 */
13722 if (L4_MABX_B.DataTypeConversion5_af) {
13723 /* S-Function (rti_commonblock): '<S963>/S-Function1' */
13724 /* This comment workarounds a code generation problem */
13725
13726 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
13727 {
13728 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13729
13730 Float32 delayTime = 0.0;
13731
13732 /* ... Read status and timestamp info (previous message) */
13733 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]);
13734
13735 /* Convert timestamp */
13736 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->processed) {
13737 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp =
13738 rtk_dsts_time_to_simtime_convert
13739 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp);
13740 }
13741
13742 /* Messages with timestamp zero have been received in pause/stop state
13743 and must not be handled.
13744 */
13745 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp > 0.0) {
13746 L4_MABX_B.SFunction1_o1_o = (real_T)
13747 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->processed;
13748 L4_MABX_B.SFunction1_o2_a = (real_T)
13749 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp;
13750 L4_MABX_B.SFunction1_o3_f3 = (real_T)
13751 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->deltatime;
13752 L4_MABX_B.SFunction1_o4_k = (real_T)
13753 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->delaytime;
13754 }
13755
13756 /* ... Encode Simulink signals of TX and RM blocks*/
13757 {
13758 rtican_Signal_t CAN_Sgn;
13759
13760 /* ...... "SPN899_EngineTorqueMode" (0|4, standard signal, unsigned int, little endian) */
13761 /* Add or substract 0.5 in order to round to nearest integer */
13762 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_f0 ) +
13763 0.5);
13764 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13765 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13766
13767 /* ...... "SPN4154_ActEngPercTorqueFrac" (4|4, standard signal, unsigned int, little endian) */
13768 /* Add or substract 0.5 in order to round to nearest integer */
13769 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_iq - ( 0
13770 ) ) / 0.125 + 0.5);
13771 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13772 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
13773 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13774
13775 /* ...... "SPN512_DrvrDemEngPercTrq" (8|8, standard signal, unsigned int, little endian) */
13776 /* Add or substract 0.5 in order to round to nearest integer */
13777 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion2_m4 -
13778 ( -125 ) + 0.5);
13779 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13780 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
13781
13782 /* ...... "SPN513_ActEngPercTorque" (16|8, standard signal, unsigned int, little endian) */
13783 /* Add or substract 0.5 in order to round to nearest integer */
13784 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion3_o - ( -125
13785 ) + 0.5);
13786 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13787 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13788
13789 /* ...... "SPN190_EngineSpeed" (24|16, standard signal, unsigned int, little endian) */
13790 /* Add or substract 0.5 in order to round to nearest integer */
13791 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_a - ( 0 )
13792 ) / 0.125 + 0.5);
13793 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13794 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
13795 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
13796
13797 /* ...... "SPN1483_SAOfCtrlDevForEngineCtrl" (40|8, standard signal, unsigned int, little endian) */
13798 /* Add or substract 0.5 in order to round to nearest integer */
13799 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_p ) +
13800 0.5);
13801 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13802 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
13803
13804 /* ...... "SPN1675_EngineStarterMode" (48|4, standard signal, unsigned int, little endian) */
13805 /* Add or substract 0.5 in order to round to nearest integer */
13806 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_e ) +
13807 0.5);
13808 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13809 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
13810
13811 /* ...... "SPN2432_EngDemPercTrq" (56|8, standard signal, unsigned int, little endian) */
13812 /* Add or substract 0.5 in order to round to nearest integer */
13813 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion8_d - ( -125
13814 ) + 0.5);
13815 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13816 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
13817 }
13818
13819 /* mask unused bits with '1' */
13820 CAN_Msg[6] |= 0xF0;
13821
13822 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13823 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400], 8,
13824 &(CAN_Msg[0]), delayTime);
13825 }
13826 }
13827
13828 /* End of Outputs for SubSystem: '<S961>/EEC1_00' */
13829
13830 /* DataTypeConversion: '<S962>/Data Type Conversion1' */
13831 L4_MABX_B.DataTypeConversion1_ih = L4_MABX_B.SFunction1_o2_p0;
13832
13833 /* DataTypeConversion: '<S962>/Data Type Conversion2' */
13834 L4_MABX_B.DataTypeConversion2_c = L4_MABX_B.SFunction1_o3_n1;
13835
13836 /* DataTypeConversion: '<S962>/Data Type Conversion3' */
13837 L4_MABX_B.DataTypeConversion3_gv = L4_MABX_B.SFunction1_o4_j0;
13838
13839 /* DataTypeConversion: '<S962>/Data Type Conversion4' */
13840 L4_MABX_B.DataTypeConversion4_n = L4_MABX_B.SFunction1_o1_od;
13841
13842 /* DataTypeConversion: '<S962>/Data Type Conversion5' */
13843 L4_MABX_B.DataTypeConversion5_ek = L4_MABX_B.SFunction1_o5_mg;
13844
13845 /* DataTypeConversion: '<S962>/Data Type Conversion6' */
13846 L4_MABX_B.DataTypeConversion6_d = L4_MABX_B.SFunction1_o6_k3;
13847
13848 /* DataTypeConversion: '<S962>/Data Type Conversion7' */
13849 L4_MABX_B.DataTypeConversion7_c = L4_MABX_B.SFunction1_o7_ow;
13850
13851 /* DataTypeConversion: '<S962>/Data Type Conversion8' */
13852 L4_MABX_B.DataTypeConversion8_h = L4_MABX_B.SFunction1_o8_gl;
13853
13854 /* S-Function (sfix_bitop): '<S959>/Operator' */
13855 L4_MABX_B.Operator_ey = (uint8_T)(L4_MABX_B.DataTypeConversion_bf &
13856 L4_MABX_P.Operator_BitMask_dt);
13857
13858 /* DataTypeConversion: '<S959>/DataType' */
13859 L4_MABX_B.DataType_f = L4_MABX_B.Operator_ey;
13860
13861 /* ArithShift: '<S943>/Shift_Arithmetic 3' */
13862 L4_MABX_B.Shift_Arithmetic3_c = ldexp(L4_MABX_B.DataType_f, (-4));
13863
13864 /* DataTypeConversion: '<S943>/Data Type Conversion6' */
13865 L4_MABX_B.DataTypeConversion6_l1 = (L4_MABX_B.Shift_Arithmetic3_c != 0.0);
13866
13867 /* Outputs for Enabled SubSystem: '<S962>/EEC1_00' incorporates:
13868 * EnablePort: '<S964>/Enable'
13869 */
13870 if (L4_MABX_B.DataTypeConversion6_l1) {
13871 /* S-Function (rti_commonblock): '<S964>/S-Function1' */
13872 /* This comment workarounds a code generation problem */
13873
13874 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
13875 {
13876 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13877
13878 Float32 delayTime = 0.0;
13879
13880 /* ... Read status and timestamp info (previous message) */
13881 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]);
13882
13883 /* Convert timestamp */
13884 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->processed) {
13885 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp =
13886 rtk_dsts_time_to_simtime_convert
13887 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp);
13888 }
13889
13890 /* Messages with timestamp zero have been received in pause/stop state
13891 and must not be handled.
13892 */
13893 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp > 0.0) {
13894 L4_MABX_B.SFunction1_o1_pm = (real_T)
13895 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->processed;
13896 L4_MABX_B.SFunction1_o2_n = (real_T)
13897 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp;
13898 L4_MABX_B.SFunction1_o3_g = (real_T)
13899 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->deltatime;
13900 L4_MABX_B.SFunction1_o4_lr = (real_T)
13901 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->delaytime;
13902 }
13903
13904 /* ... Encode Simulink signals of TX and RM blocks*/
13905 {
13906 rtican_Signal_t CAN_Sgn;
13907
13908 /* ...... "SPN899_EngineTorqueMode" (0|4, standard signal, unsigned int, little endian) */
13909 /* Add or substract 0.5 in order to round to nearest integer */
13910 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_n ) +
13911 0.5);
13912 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13913 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13914
13915 /* ...... "SPN4154_ActEngPercTorqueFrac" (4|4, standard signal, unsigned int, little endian) */
13916 /* Add or substract 0.5 in order to round to nearest integer */
13917 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ih - ( 0
13918 ) ) / 0.125 + 0.5);
13919 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13920 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
13921 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13922
13923 /* ...... "SPN512_DrvrDemEngPercTrq" (8|8, standard signal, unsigned int, little endian) */
13924 /* Add or substract 0.5 in order to round to nearest integer */
13925 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion2_c - ( -125
13926 ) + 0.5);
13927 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13928 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
13929
13930 /* ...... "SPN513_ActEngPercTorque" (16|8, standard signal, unsigned int, little endian) */
13931 /* Add or substract 0.5 in order to round to nearest integer */
13932 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion3_gv -
13933 ( -125 ) + 0.5);
13934 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13935 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13936
13937 /* ...... "SPN190_EngineSpeed" (24|16, standard signal, unsigned int, little endian) */
13938 /* Add or substract 0.5 in order to round to nearest integer */
13939 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_ek - ( 0
13940 ) ) / 0.125 + 0.5);
13941 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13942 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
13943 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
13944
13945 /* ...... "SPN1483_SAOfCtrlDevForEngineCtrl" (40|8, standard signal, unsigned int, little endian) */
13946 /* Add or substract 0.5 in order to round to nearest integer */
13947 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_d ) +
13948 0.5);
13949 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13950 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
13951
13952 /* ...... "SPN1675_EngineStarterMode" (48|4, standard signal, unsigned int, little endian) */
13953 /* Add or substract 0.5 in order to round to nearest integer */
13954 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_c ) +
13955 0.5);
13956 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13957 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
13958
13959 /* ...... "SPN2432_EngDemPercTrq" (56|8, standard signal, unsigned int, little endian) */
13960 /* Add or substract 0.5 in order to round to nearest integer */
13961 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion8_h - ( -125
13962 ) + 0.5);
13963 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13964 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
13965 }
13966
13967 /* mask unused bits with '1' */
13968 CAN_Msg[6] |= 0xF0;
13969
13970 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13971 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400], 8,
13972 &(CAN_Msg[0]), delayTime);
13973 }
13974 }
13975
13976 /* End of Outputs for SubSystem: '<S962>/EEC1_00' */
13977
13978 /* S-Function (sfix_bitop): '<S955>/Operator' */
13979 L4_MABX_B.Operator_d5 = (uint8_T)(L4_MABX_B.DataTypeConversion_bf &
13980 L4_MABX_P.Operator_BitMask_oo);
13981
13982 /* DataTypeConversion: '<S955>/DataType' */
13983 L4_MABX_B.DataType_it = L4_MABX_B.Operator_d5;
13984
13985 /* S-Function (sfix_bitop): '<S956>/Operator' */
13986 L4_MABX_B.Operator_nz = (uint8_T)(L4_MABX_B.DataTypeConversion_bf &
13987 L4_MABX_P.Operator_BitMask_di);
13988
13989 /* DataTypeConversion: '<S956>/DataType' */
13990 L4_MABX_B.DataType_g2 = L4_MABX_B.Operator_nz;
13991
13992 /* S-Function (sfix_bitop): '<S957>/Operator' */
13993 L4_MABX_B.Operator_at = (uint8_T)(L4_MABX_B.DataTypeConversion_bf &
13994 L4_MABX_P.Operator_BitMask_bi);
13995
13996 /* DataTypeConversion: '<S957>/DataType' */
13997 L4_MABX_B.DataType_p = L4_MABX_B.Operator_at;
13998
13999 /* S-Function (sfix_bitop): '<S960>/Operator' */
14000 L4_MABX_B.Operator_g4 = (uint8_T)(L4_MABX_B.DataTypeConversion_bf &
14001 L4_MABX_P.Operator_BitMask_l);
14002
14003 /* DataTypeConversion: '<S960>/DataType' */
14004 L4_MABX_B.DataType_j2 = L4_MABX_B.Operator_g4;
14005
14006 /* DataTypeConversion: '<S943>/Data Type Conversion2' */
14007 L4_MABX_B.DataTypeConversion2_bh = (L4_MABX_B.DataType_it != 0);
14008
14009 /* ArithShift: '<S943>/Shift_Arithmetic ' */
14010 L4_MABX_B.Shift_Arithmetic_aj = ldexp(L4_MABX_B.DataType_g2, (-1));
14011
14012 /* DataTypeConversion: '<S943>/Data Type Conversion3' */
14013 L4_MABX_B.DataTypeConversion3_f5r = (L4_MABX_B.Shift_Arithmetic_aj != 0.0);
14014
14015 /* ArithShift: '<S943>/Shift_Arithmetic 1' */
14016 L4_MABX_B.Shift_Arithmetic1_k = ldexp(L4_MABX_B.DataType_p, (-2));
14017
14018 /* DataTypeConversion: '<S943>/Data Type Conversion4' */
14019 L4_MABX_B.DataTypeConversion4_jg = (L4_MABX_B.Shift_Arithmetic1_k != 0.0);
14020
14021 /* ArithShift: '<S943>/Shift_Arithmetic 4' */
14022 L4_MABX_B.Shift_Arithmetic4_k = ldexp(L4_MABX_B.DataType_j2, (-5));
14023
14024 /* DataTypeConversion: '<S943>/Data Type Conversion7' */
14025 L4_MABX_B.DataTypeConversion7_kk = (L4_MABX_B.Shift_Arithmetic4_k != 0.0);
14026
14027 /* DataTypeConversion: '<S946>/Data Type Conversion' */
14028 L4_MABX_B.DataTypeConversion_bx = AutonomousOutputEnabled;
14029
14030 /* Switch: '<S980>/Switch' incorporates:
14031 * Constant: '<S980>/Constant'
14032 * Constant: '<S980>/Constant1'
14033 */
14034 if (L4_MABX_B.DataTypeConversion_bx != 0) {
14035 L4_MABX_B.Switch_gr = L4_MABX_P.Constant_Value_p4;
14036 } else {
14037 L4_MABX_B.Switch_gr = L4_MABX_P.Constant1_Value_ov;
14038 }
14039
14040 /* End of Switch: '<S980>/Switch' */
14041
14042 /* DataTypeConversion: '<S978>/Data Type Conversion' */
14043 L4_MABX_B.DataTypeConversion_pi = L4_MABX_B.Switch_gr;
14044
14045 /* RelationalOperator: '<S997>/Operator' incorporates:
14046 * Constant: '<S979>/Constant'
14047 * Constant: '<S979>/Constant6'
14048 */
14049 L4_MABX_B.Operator_bn = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
14050 L4_MABX_P.Constant_Value_pn);
14051
14052 /* Outputs for Enabled SubSystem: '<S979>/DEFAULT_TRQ_CTRL_MODE' */
14053 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_bn, &L4_MABX_B.Merge,
14054 &L4_MABX_P.DEFAULT_TRQ_CTRL_MODE);
14055
14056 /* End of Outputs for SubSystem: '<S979>/DEFAULT_TRQ_CTRL_MODE' */
14057
14058 /* Switch: '<S996>/Switch' incorporates:
14059 * Constant: '<S996>/zero'
14060 */
14061 if (L4_MABX_B.DataTypeConversion_bx != 0) {
14062 /* MultiPortSwitch: '<S996>/Multiport_Switch' incorporates:
14063 * Constant: '<S996>/Constant1'
14064 * Constant: '<S996>/Constant7'
14065 */
14066 switch (PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV) {
14067 case ENUM_STEERING_POS_SIGNAL_SOURCE_T_SW_EMULATION:
14068 L4_MABX_B.Multiport_Switch = PROPB_REAX_1_E4_DESIRED_POSITION_APV;
14069 break;
14070
14071 case ENUM_STEERING_POS_SIGNAL_SOURCE_T_ESTIMATION:
14072 L4_MABX_B.Multiport_Switch = L4_MABX_B.Subtract_c1;
14073 break;
14074
14075 default:
14076 L4_MABX_B.Multiport_Switch = PROPB_REAX_1_E4_DESIRED_POSITION_APV;
14077 break;
14078 }
14079
14080 /* End of MultiPortSwitch: '<S996>/Multiport_Switch' */
14081 L4_MABX_B.Switch_mq = L4_MABX_B.Multiport_Switch;
14082 } else {
14083 L4_MABX_B.Switch_mq = L4_MABX_P.zero_Value_l;
14084 }
14085
14086 /* End of Switch: '<S996>/Switch' */
14087
14088 /* RelationalOperator: '<S1006>/Operator_MX' incorporates:
14089 * Constant: '<S1006>/MX'
14090 */
14091 L4_MABX_B.Operator_MX = (L4_MABX_B.Switch_mq > L4_MABX_P.MX_Value);
14092
14093 /* RelationalOperator: '<S1006>/Operator_MN' incorporates:
14094 * Constant: '<S1006>/MN'
14095 */
14096 L4_MABX_B.Operator_MN = (L4_MABX_B.Switch_mq < L4_MABX_P.MN_Value);
14097
14098 /* Switch: '<S1006>/Switch2' incorporates:
14099 * Constant: '<S1006>/MX'
14100 * Switch: '<S1006>/Switch1'
14101 */
14102 if (L4_MABX_B.Operator_MX) {
14103 L4_MABX_B.Switch2 = L4_MABX_P.MX_Value;
14104 } else {
14105 if (L4_MABX_B.Operator_MN) {
14106 /* Switch: '<S1006>/Switch1' incorporates:
14107 * Constant: '<S1006>/MN'
14108 */
14109 L4_MABX_B.Switch1 = L4_MABX_P.MN_Value;
14110 } else {
14111 /* Switch: '<S1006>/Switch1' */
14112 L4_MABX_B.Switch1 = L4_MABX_B.Switch_mq;
14113 }
14114
14115 L4_MABX_B.Switch2 = L4_MABX_B.Switch1;
14116 }
14117
14118 /* End of Switch: '<S1006>/Switch2' */
14119
14120 /* DataTypeConversion: '<S1006>/DataType' */
14121 L4_MABX_B.DataType_k4 = L4_MABX_B.Switch2;
14122
14123 /* RelationalOperator: '<S998>/Operator' incorporates:
14124 * Constant: '<S979>/Constant1'
14125 * Constant: '<S979>/Constant6'
14126 */
14127 L4_MABX_B.Operator_f5 = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
14128 L4_MABX_P.Constant1_Value_al);
14129
14130 /* Outputs for Enabled SubSystem: '<S979>/POSITION_CONTROL_MODE' incorporates:
14131 * EnablePort: '<S1007>/Enable'
14132 */
14133 if (L4_MABX_B.Operator_f5) {
14134 /* Product: '<S1007>/Product' incorporates:
14135 * Constant: '<S1007>/Constant'
14136 */
14137 L4_MABX_B.Product = L4_MABX_B.DataType_k4 * L4_MABX_P.Constant_Value_c;
14138
14139 /* DataTypeConversion: '<S1007>/Data Type Conversion' */
14140 PositionFinalLimited = floor(L4_MABX_B.Product);
14141 if (PositionFinalLimited < 2.147483648E+9) {
14142 if (PositionFinalLimited >= -2.147483648E+9) {
14143 i = (int32_T)PositionFinalLimited;
14144 } else {
14145 i = MIN_int32_T;
14146 }
14147 } else {
14148 i = MAX_int32_T;
14149 }
14150
14151 L4_MABX_B.Merge = i;
14152
14153 /* End of DataTypeConversion: '<S1007>/Data Type Conversion' */
14154 }
14155
14156 /* End of Outputs for SubSystem: '<S979>/POSITION_CONTROL_MODE' */
14157
14158 /* RelationalOperator: '<S999>/Operator' incorporates:
14159 * Constant: '<S979>/Constant2'
14160 * Constant: '<S979>/Constant6'
14161 */
14162 L4_MABX_B.Operator_ezf = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
14163 L4_MABX_P.Constant2_Value_al);
14164
14165 /* Outputs for Enabled SubSystem: '<S979>/EXT_TRQ_CTRL_MODE_A' */
14166 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_ezf, &L4_MABX_B.Merge,
14167 &L4_MABX_P.EXT_TRQ_CTRL_MODE_A);
14168
14169 /* End of Outputs for SubSystem: '<S979>/EXT_TRQ_CTRL_MODE_A' */
14170
14171 /* RelationalOperator: '<S1000>/Operator' incorporates:
14172 * Constant: '<S979>/Constant3'
14173 * Constant: '<S979>/Constant6'
14174 */
14175 L4_MABX_B.Operator_gx = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
14176 L4_MABX_P.Constant3_Value_bi);
14177
14178 /* Outputs for Enabled SubSystem: '<S979>/ALL_CTRL_DISABLED' */
14179 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_gx, &L4_MABX_B.Merge,
14180 &L4_MABX_P.ALL_CTRL_DISABLED);
14181
14182 /* End of Outputs for SubSystem: '<S979>/ALL_CTRL_DISABLED' */
14183
14184 /* RelationalOperator: '<S1001>/Operator' incorporates:
14185 * Constant: '<S979>/Constant4'
14186 * Constant: '<S979>/Constant6'
14187 */
14188 L4_MABX_B.Operator_kc = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
14189 L4_MABX_P.Constant4_Value_a);
14190
14191 /* Outputs for Enabled SubSystem: '<S979>/EXT_TRQ_CTRL_MODE_B' */
14192 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_kc, &L4_MABX_B.Merge,
14193 &L4_MABX_P.EXT_TRQ_CTRL_MODE_B);
14194
14195 /* End of Outputs for SubSystem: '<S979>/EXT_TRQ_CTRL_MODE_B' */
14196
14197 /* RelationalOperator: '<S1002>/Operator' incorporates:
14198 * Constant: '<S979>/Constant5'
14199 * Constant: '<S979>/Constant6'
14200 */
14201 L4_MABX_B.Operator_pl = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
14202 L4_MABX_P.Constant5_Value_e);
14203
14204 /* Outputs for Enabled SubSystem: '<S979>/EXT_TRQ_CTRL_MODE_C' */
14205 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_pl, &L4_MABX_B.Merge,
14206 &L4_MABX_P.EXT_TRQ_CTRL_MODE_C);
14207
14208 /* End of Outputs for SubSystem: '<S979>/EXT_TRQ_CTRL_MODE_C' */
14209
14210 /* DataTypeConversion: '<S978>/Data Type Conversion2' */
14211 L4_MABX_B.DataTypeConversion2_eh = (uint32_T)L4_MABX_B.Merge;
14212
14213 /* S-Function (sfix_bitop): '<S983>/Operator' */
14214 L4_MABX_B.Operator_f = L4_MABX_B.DataTypeConversion2_eh &
14215 L4_MABX_P.Operator_BitMask_ia;
14216
14217 /* DataTypeConversion: '<S983>/DataType' */
14218 tmp = L4_MABX_B.Operator_f;
14219 if (tmp > 255U) {
14220 tmp = 255U;
14221 }
14222
14223 L4_MABX_B.DataType_mt = (uint8_T)tmp;
14224
14225 /* End of DataTypeConversion: '<S983>/DataType' */
14226
14227 /* S-Function (sfix_bitop): '<S984>/Operator' */
14228 L4_MABX_B.Operator_h = L4_MABX_B.DataTypeConversion2_eh &
14229 L4_MABX_P.Operator_BitMask_nh;
14230
14231 /* DataTypeConversion: '<S984>/DataType' */
14232 tmp = L4_MABX_B.Operator_h;
14233 if (tmp > 65535U) {
14234 tmp = 65535U;
14235 }
14236
14237 L4_MABX_B.DataType_hx = (uint16_T)tmp;
14238
14239 /* End of DataTypeConversion: '<S984>/DataType' */
14240
14241 /* ArithShift: '<S978>/Shift_Arithmetic ' */
14242 L4_MABX_B.Shift_Arithmetic_c = (uint16_T)((uint32_T)L4_MABX_B.DataType_hx >> 8);
14243
14244 /* DataTypeConversion: '<S978>/Data Type Conversion4' */
14245 tmp_0 = L4_MABX_B.Shift_Arithmetic_c;
14246 if (tmp_0 > 255) {
14247 tmp_0 = 255U;
14248 }
14249
14250 L4_MABX_B.DataTypeConversion4_jh = (uint8_T)tmp_0;
14251
14252 /* End of DataTypeConversion: '<S978>/Data Type Conversion4' */
14253
14254 /* S-Function (sfix_bitop): '<S985>/Operator' */
14255 L4_MABX_B.Operator_j = L4_MABX_B.DataTypeConversion2_eh &
14256 L4_MABX_P.Operator_BitMask_dz;
14257
14258 /* DataTypeConversion: '<S985>/DataType' */
14259 L4_MABX_B.DataType_ox = L4_MABX_B.Operator_j;
14260
14261 /* ArithShift: '<S978>/Shift_Arithmetic 1' */
14262 L4_MABX_B.Shift_Arithmetic1_l = L4_MABX_B.DataType_ox >> 16;
14263
14264 /* DataTypeConversion: '<S978>/Data Type Conversion5' */
14265 tmp = L4_MABX_B.Shift_Arithmetic1_l;
14266 if (tmp > 255U) {
14267 tmp = 255U;
14268 }
14269
14270 L4_MABX_B.DataTypeConversion5_ab = (uint8_T)tmp;
14271
14272 /* End of DataTypeConversion: '<S978>/Data Type Conversion5' */
14273
14274 /* S-Function (sfix_bitop): '<S986>/Operator' */
14275 L4_MABX_B.Operator_oi = L4_MABX_B.DataTypeConversion2_eh &
14276 L4_MABX_P.Operator_BitMask_ge;
14277
14278 /* DataTypeConversion: '<S986>/DataType' */
14279 L4_MABX_B.DataType_fi = L4_MABX_B.Operator_oi;
14280
14281 /* ArithShift: '<S978>/Shift_Arithmetic 2' */
14282 L4_MABX_B.Shift_Arithmetic2_e = L4_MABX_B.DataType_fi >> 24;
14283
14284 /* DataTypeConversion: '<S978>/Data Type Conversion6' */
14285 tmp = L4_MABX_B.Shift_Arithmetic2_e;
14286 if (tmp > 255U) {
14287 tmp = 255U;
14288 }
14289
14290 L4_MABX_B.DataTypeConversion6_a = (uint8_T)tmp;
14291
14292 /* End of DataTypeConversion: '<S978>/Data Type Conversion6' */
14293
14294 /* Reshape: '<S1008>/Reshape' incorporates:
14295 * Constant: '<S1008>/Constant'
14296 */
14297 for (i = 0; i < 16; i++) {
14298 L4_MABX_B.Reshape_f[i] = L4_MABX_P.Repeating_Sequence_Stair_Out_e5[i];
14299 }
14300
14301 /* End of Reshape: '<S1008>/Reshape' */
14302
14303 /* UnitDelay: '<S1008>/Unit_Delay' */
14304 L4_MABX_B.Unit_Delay_pb = L4_MABX_DW.Unit_Delay_DSTATE_kh;
14305
14306 /* UnitDelay: '<S1009>/Unit Delay' */
14307 L4_MABX_B.UnitDelay_mo = L4_MABX_DW.UnitDelay_DSTATE_ee;
14308
14309 /* Switch: '<S1012>/Switch1' incorporates:
14310 * Constant: '<S1009>/E'
14311 * Constant: '<S1009>/IV'
14312 * Switch: '<S1011>/Switch1'
14313 */
14314 if (L4_MABX_B.Unit_Delay_pb) {
14315 L4_MABX_B.Switch1_ga = L4_MABX_P.IV_Value_f;
14316 } else {
14317 if (L4_MABX_P.E_Value_o) {
14318 /* Sum: '<S1009>/Subtract' incorporates:
14319 * Constant: '<S1009>/Constant'
14320 * Switch: '<S1011>/Switch1'
14321 */
14322 q0 = L4_MABX_P.Constant_Value_es;
14323 tmp = q0 + L4_MABX_B.UnitDelay_mo;
14324 if (tmp < q0) {
14325 tmp = MAX_uint32_T;
14326 }
14327
14328 L4_MABX_B.Subtract_np3 = tmp;
14329
14330 /* End of Sum: '<S1009>/Subtract' */
14331
14332 /* Switch: '<S1011>/Switch1' */
14333 L4_MABX_B.Switch1_l = L4_MABX_B.Subtract_np3;
14334 } else {
14335 /* Switch: '<S1011>/Switch1' */
14336 L4_MABX_B.Switch1_l = L4_MABX_B.UnitDelay_mo;
14337 }
14338
14339 L4_MABX_B.Switch1_ga = L4_MABX_B.Switch1_l;
14340 }
14341
14342 /* End of Switch: '<S1012>/Switch1' */
14343
14344 /* Selector: '<S1008>/Selector' */
14345 L4_MABX_B.Selector_l = L4_MABX_B.Reshape_f[(int32_T)L4_MABX_B.Switch1_ga - 1];
14346
14347 /* DataTypeConversion: '<S978>/Data Type Conversion1' */
14348 L4_MABX_B.DataTypeConversion1_cb = L4_MABX_B.Selector_l;
14349
14350 /* S-Function (sfix_bitop): '<S991>/Operator' */
14351 L4_MABX_B.Operator_ed = (uint8_T)(L4_MABX_B.DataTypeConversion1_cb &
14352 L4_MABX_P.Operator_BitMask_ai);
14353
14354 /* DataTypeConversion: '<S991>/DataType' */
14355 L4_MABX_B.DataType_pa = L4_MABX_B.Operator_ed;
14356
14357 /* DataTypeConversion: '<S977>/Data Type Conversion' incorporates:
14358 * Constant: '<S977>/Priority'
14359 */
14360 L4_MABX_B.DataTypeConversion_n = L4_MABX_P.Priority_Value_c;
14361
14362 /* ArithShift: '<S977>/Shift_Arithmetic ' */
14363 L4_MABX_B.Shift_Arithmetic_m = L4_MABX_B.DataTypeConversion_n << 26;
14364
14365 /* DataTypeConversion: '<S977>/Data Type Conversion1' incorporates:
14366 * Constant: '<S977>/ExtendedDataPage'
14367 */
14368 L4_MABX_B.DataTypeConversion1_l = L4_MABX_P.ExtendedDataPage_Value_o;
14369
14370 /* ArithShift: '<S977>/Shift_Arithmetic 1' */
14371 L4_MABX_B.Shift_Arithmetic1_e = L4_MABX_B.DataTypeConversion1_l << 25;
14372
14373 /* DataTypeConversion: '<S977>/Data Type Conversion2' incorporates:
14374 * Constant: '<S977>/DataPage'
14375 */
14376 L4_MABX_B.DataTypeConversion2_g = L4_MABX_P.DataPage_Value_c;
14377
14378 /* ArithShift: '<S977>/Shift_Arithmetic 2' */
14379 L4_MABX_B.Shift_Arithmetic2_mj = L4_MABX_B.DataTypeConversion2_g << 24;
14380
14381 /* DataTypeConversion: '<S977>/Data Type Conversion3' incorporates:
14382 * Constant: '<S977>/PDUFormat'
14383 */
14384 L4_MABX_B.DataTypeConversion3_gd = L4_MABX_P.PDUFormat_Value_c;
14385
14386 /* ArithShift: '<S977>/Shift_Arithmetic 3' */
14387 L4_MABX_B.Shift_Arithmetic3_n = L4_MABX_B.DataTypeConversion3_gd << 16;
14388
14389 /* DataTypeConversion: '<S977>/Data Type Conversion4' incorporates:
14390 * Constant: '<S977>/PDUSpecific'
14391 */
14392 L4_MABX_B.DataTypeConversion4_g = L4_MABX_P.PDUSpecific_Value_e;
14393
14394 /* ArithShift: '<S977>/Shift_Arithmetic 4' */
14395 L4_MABX_B.Shift_Arithmetic4_i = L4_MABX_B.DataTypeConversion4_g << 8;
14396
14397 /* DataTypeConversion: '<S977>/Data Type Conversion5' incorporates:
14398 * Constant: '<S977>/SourceAddress'
14399 */
14400 L4_MABX_B.DataTypeConversion5_ih = L4_MABX_P.SourceAddress_Value_j;
14401
14402 /* S-Function (sfix_bitop): '<S982>/Operator' */
14403 L4_MABX_B.Operator_hb = L4_MABX_B.Shift_Arithmetic_m |
14404 L4_MABX_B.Shift_Arithmetic1_e | L4_MABX_B.Shift_Arithmetic2_mj |
14405 L4_MABX_B.Shift_Arithmetic3_n | L4_MABX_B.Shift_Arithmetic4_i |
14406 L4_MABX_B.DataTypeConversion5_ih;
14407
14408 /* DataTypeConversion: '<S982>/DataType' */
14409 L4_MABX_B.DataType_kg = L4_MABX_B.Operator_hb;
14410
14411 /* DataTypeConversion: '<S978>/Data Type Conversion3' */
14412 L4_MABX_B.DataTypeConversion3_p4 = L4_MABX_B.DataType_kg;
14413
14414 /* S-Function (sfix_bitop): '<S987>/Operator' */
14415 L4_MABX_B.Operator_l = L4_MABX_B.DataTypeConversion3_p4 &
14416 L4_MABX_P.Operator_BitMask_n2;
14417
14418 /* DataTypeConversion: '<S987>/DataType' */
14419 tmp = L4_MABX_B.Operator_l;
14420 if (tmp > 255U) {
14421 tmp = 255U;
14422 }
14423
14424 L4_MABX_B.DataType_dw = (uint8_T)tmp;
14425
14426 /* End of DataTypeConversion: '<S987>/DataType' */
14427
14428 /* S-Function (sfix_bitop): '<S988>/Operator' */
14429 L4_MABX_B.Operator_h2 = L4_MABX_B.DataTypeConversion3_p4 &
14430 L4_MABX_P.Operator_BitMask_j2;
14431
14432 /* DataTypeConversion: '<S988>/DataType' */
14433 tmp = L4_MABX_B.Operator_h2;
14434 if (tmp > 65535U) {
14435 tmp = 65535U;
14436 }
14437
14438 L4_MABX_B.DataType_hj = (uint16_T)tmp;
14439
14440 /* End of DataTypeConversion: '<S988>/DataType' */
14441
14442 /* ArithShift: '<S978>/Shift_Arithmetic 3' */
14443 L4_MABX_B.Shift_Arithmetic3_an = (uint16_T)((uint32_T)L4_MABX_B.DataType_hj >>
14444 8);
14445
14446 /* DataTypeConversion: '<S978>/Data Type Conversion8' */
14447 tmp_0 = L4_MABX_B.Shift_Arithmetic3_an;
14448 if (tmp_0 > 255) {
14449 tmp_0 = 255U;
14450 }
14451
14452 L4_MABX_B.DataTypeConversion8_pj = (uint8_T)tmp_0;
14453
14454 /* End of DataTypeConversion: '<S978>/Data Type Conversion8' */
14455
14456 /* S-Function (sfix_bitop): '<S989>/Operator' */
14457 L4_MABX_B.Operator_g = L4_MABX_B.DataTypeConversion3_p4 &
14458 L4_MABX_P.Operator_BitMask_ja;
14459
14460 /* DataTypeConversion: '<S989>/DataType' */
14461 L4_MABX_B.DataType_au = L4_MABX_B.Operator_g;
14462
14463 /* ArithShift: '<S978>/Shift_Arithmetic 4' */
14464 L4_MABX_B.Shift_Arithmetic4_g = L4_MABX_B.DataType_au >> 16;
14465
14466 /* DataTypeConversion: '<S978>/Data Type Conversion9' */
14467 tmp = L4_MABX_B.Shift_Arithmetic4_g;
14468 if (tmp > 255U) {
14469 tmp = 255U;
14470 }
14471
14472 L4_MABX_B.DataTypeConversion9_c = (uint8_T)tmp;
14473
14474 /* End of DataTypeConversion: '<S978>/Data Type Conversion9' */
14475
14476 /* S-Function (sfix_bitop): '<S990>/Operator' */
14477 L4_MABX_B.Operator_i = L4_MABX_B.DataTypeConversion3_p4 &
14478 L4_MABX_P.Operator_BitMask_mr;
14479
14480 /* DataTypeConversion: '<S990>/DataType' */
14481 L4_MABX_B.DataType_nm = L4_MABX_B.Operator_i;
14482
14483 /* ArithShift: '<S978>/Shift_Arithmetic 5' */
14484 L4_MABX_B.Shift_Arithmetic5_d = L4_MABX_B.DataType_nm >> 24;
14485
14486 /* DataTypeConversion: '<S978>/Data Type Conversion10' */
14487 tmp = L4_MABX_B.Shift_Arithmetic5_d;
14488 if (tmp > 255U) {
14489 tmp = 255U;
14490 }
14491
14492 L4_MABX_B.DataTypeConversion10_ov = (uint8_T)tmp;
14493
14494 /* End of DataTypeConversion: '<S978>/Data Type Conversion10' */
14495
14496 /* Sum: '<S978>/Add' incorporates:
14497 * Constant: '<S978>/Constant'
14498 * Constant: '<S978>/Constant1'
14499 */
14500 L4_MABX_B.Add_ar = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
14501 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
14502 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
14503 (uint8_T)((uint32_T)L4_MABX_B.DataTypeConversion_pi + L4_MABX_B.DataType_mt)
14504 + L4_MABX_B.DataTypeConversion4_jh) + L4_MABX_B.DataTypeConversion5_ab) +
14505 L4_MABX_B.DataTypeConversion6_a) + L4_MABX_P.Constant_Value_gz) +
14506 L4_MABX_P.Constant1_Value_ox) + L4_MABX_B.DataType_dw) +
14507 L4_MABX_B.DataTypeConversion8_pj) +
14508 L4_MABX_B.DataTypeConversion9_c) + L4_MABX_B.DataTypeConversion10_ov) +
14509 L4_MABX_B.DataType_pa);
14510
14511 /* ArithShift: '<S978>/Shift_Arithmetic 6' */
14512 L4_MABX_B.Shift_Arithmetic6_la = (uint8_T)((uint32_T)L4_MABX_B.Add_ar >> 4);
14513
14514 /* Sum: '<S978>/Add1' */
14515 L4_MABX_B.Add1_b2 = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic6_la +
14516 L4_MABX_B.Add_ar);
14517
14518 /* S-Function (sfix_bitop): '<S992>/Operator' */
14519 L4_MABX_B.Operator_bd = (uint8_T)(L4_MABX_B.Add1_b2 &
14520 L4_MABX_P.Operator_BitMask_lw);
14521
14522 /* DataTypeConversion: '<S992>/DataType' */
14523 L4_MABX_B.DataType_nr = L4_MABX_B.Operator_bd;
14524
14525 /* ArithShift: '<S978>/Shift_Arithmetic 7' */
14526 L4_MABX_B.Shift_Arithmetic7_k = (uint8_T)(L4_MABX_B.DataType_nr << 4);
14527
14528 /* S-Function (sfix_bitop): '<S993>/Operator' */
14529 L4_MABX_B.Operator_jy = (uint8_T)(L4_MABX_B.DataType_pa |
14530 L4_MABX_B.Shift_Arithmetic7_k);
14531
14532 /* DataTypeConversion: '<S993>/DataType' */
14533 L4_MABX_B.DataType_ly = L4_MABX_B.Operator_jy;
14534
14535 /* DataTypeConversion: '<S944>/Data Type Conversion1' incorporates:
14536 * Constant: '<S978>/Constant'
14537 * Constant: '<S978>/Constant1'
14538 */
14539 L4_MABX_B.DataTypeConversion1_dm[0] = L4_MABX_B.DataTypeConversion_pi;
14540 L4_MABX_B.DataTypeConversion1_dm[1] = L4_MABX_B.DataType_mt;
14541 L4_MABX_B.DataTypeConversion1_dm[2] = L4_MABX_B.DataTypeConversion4_jh;
14542 L4_MABX_B.DataTypeConversion1_dm[3] = L4_MABX_B.DataTypeConversion5_ab;
14543 L4_MABX_B.DataTypeConversion1_dm[4] = L4_MABX_B.DataTypeConversion6_a;
14544 L4_MABX_B.DataTypeConversion1_dm[5] = L4_MABX_P.Constant_Value_gz;
14545 L4_MABX_B.DataTypeConversion1_dm[6] = L4_MABX_P.Constant1_Value_ox;
14546 L4_MABX_B.DataTypeConversion1_dm[7] = L4_MABX_B.DataType_ly;
14547
14548 /* Outputs for Enabled SubSystem: '<S965>/PropB_REAX_1_E4' incorporates:
14549 * EnablePort: '<S967>/Enable'
14550 */
14551 if (L4_MABX_B.Operator_h3) {
14552 /* S-Function (rti_commonblock): '<S967>/S-Function1' incorporates:
14553 * Constant: '<S965>/Constant'
14554 * Constant: '<S965>/Constant1'
14555 */
14556 /* This comment workarounds a code generation problem */
14557
14558 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
14559 {
14560 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14561 0x00 };
14562
14563 Float32 delayTime = 0.0;
14564
14565 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14566 CANTP1_PTR_M1_C2_XTD_0x18FFEFE4 = &(CAN_Msg[0]);
14567
14568 /* ... perform loop-back if required */
14569 if (L4_MABX_P.Constant1_Value_jx > 0.5) {
14570 /* ... updating the used tx-clientbuffer */
14571 can_tp1_msg_update_all( CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->module,
14572 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->queue );
14573
14574 /* ... Read status and timestamp info perform loop-back (previous message) */
14575 can_tp1_tx_msg_read_loopback(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4,
14576 8, // datalen
14577 &(CAN_Msg[0]),
14578 CANTP1_RX_SPMSG_M1_C2_XTD);
14579
14580 /* Convert timestamp */
14581 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14582 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14583 rtk_dsts_time_to_simtime_convert
14584 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14585 }
14586 } else {
14587 /* ... Read status and timestamp info (previous message) */
14588 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4);
14589
14590 /* Convert timestamp */
14591 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14592 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14593 rtk_dsts_time_to_simtime_convert
14594 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14595 }
14596 }
14597
14598 /* Messages with timestamp zero have been received in pause/stop state
14599 and must not be handled.
14600 */
14601 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp > 0.0) {
14602 L4_MABX_B.SFunction1_o1_ae = (real_T)
14603 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed;
14604 L4_MABX_B.SFunction1_o2_l = (real_T)
14605 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp;
14606 L4_MABX_B.SFunction1_o3_o = (real_T)
14607 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->deltatime;
14608 L4_MABX_B.SFunction1_o4_f = (real_T)
14609 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->delaytime;
14610 }
14611
14612 /* ... Encode Simulink signals of TX and RM blocks*/
14613 {
14614 rtican_Signal_t CAN_Sgn;
14615 UInt32 i;
14616
14617 /* Initialize the static message data to zero */
14618 for (i=0; i<8; i++ )
14619 CAN_Msg[i] = 0;
14620
14621 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
14622 /* Add or substract 0.5 in order to round to nearest integer */
14623 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[0] )
14624 + 0.5);
14625 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14626 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14627
14628 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
14629 /* Add or substract 0.5 in order to round to nearest integer */
14630 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[1] )
14631 + 0.5);
14632 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14633 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14634
14635 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
14636 /* Add or substract 0.5 in order to round to nearest integer */
14637 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[2] )
14638 + 0.5);
14639 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14640 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14641
14642 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
14643 /* Add or substract 0.5 in order to round to nearest integer */
14644 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[3] )
14645 + 0.5);
14646 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14647 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14648
14649 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
14650 /* Add or substract 0.5 in order to round to nearest integer */
14651 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[4] )
14652 + 0.5);
14653 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14654 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14655
14656 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
14657 /* Add or substract 0.5 in order to round to nearest integer */
14658 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[5] )
14659 + 0.5);
14660 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14661 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14662
14663 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
14664 /* Add or substract 0.5 in order to round to nearest integer */
14665 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[6] )
14666 + 0.5);
14667 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14668 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
14669
14670 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
14671 /* Add or substract 0.5 in order to round to nearest integer */
14672 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[7] )
14673 + 0.5);
14674 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14675 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14676 }
14677
14678 delayTime = (Float32) L4_MABX_P.Constant_Value_ea / (1700);
14679
14680 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14681 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFEFE4], 8,
14682 &(CAN_Msg[0]), delayTime);
14683 }
14684 }
14685
14686 /* End of Outputs for SubSystem: '<S965>/PropB_REAX_1_E4' */
14687
14688 /* Outputs for Enabled SubSystem: '<S966>/PropB_REAX_1_E4' incorporates:
14689 * EnablePort: '<S968>/Enable'
14690 */
14691 if (L4_MABX_B.EnablePropB_ReAX_CAN6) {
14692 /* S-Function (rti_commonblock): '<S968>/S-Function1' incorporates:
14693 * Constant: '<S966>/Constant'
14694 * Constant: '<S966>/Constant1'
14695 */
14696 /* This comment workarounds a code generation problem */
14697
14698 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
14699 {
14700 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14701 0x00 };
14702
14703 Float32 delayTime = 0.0;
14704
14705 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14706 CANTP1_PTR_M3_C2_XTD_0x18FFEFE4 = &(CAN_Msg[0]);
14707
14708 /* ... perform loop-back if required */
14709 if (L4_MABX_P.Constant1_Value_az > 0.5) {
14710 /* ... updating the used tx-clientbuffer */
14711 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->module,
14712 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->queue );
14713
14714 /* ... Read status and timestamp info perform loop-back (previous message) */
14715 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4,
14716 8, // datalen
14717 &(CAN_Msg[0]),
14718 CANTP1_RX_SPMSG_M3_C2_XTD);
14719
14720 /* Convert timestamp */
14721 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14722 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14723 rtk_dsts_time_to_simtime_convert
14724 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14725 }
14726 } else {
14727 /* ... Read status and timestamp info (previous message) */
14728 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4);
14729
14730 /* Convert timestamp */
14731 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14732 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14733 rtk_dsts_time_to_simtime_convert
14734 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14735 }
14736 }
14737
14738 /* Messages with timestamp zero have been received in pause/stop state
14739 and must not be handled.
14740 */
14741 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp > 0.0) {
14742 L4_MABX_B.SFunction1_o1_fx = (real_T)
14743 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed;
14744 L4_MABX_B.SFunction1_o2_g1 = (real_T)
14745 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp;
14746 L4_MABX_B.SFunction1_o3_fn = (real_T)
14747 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->deltatime;
14748 L4_MABX_B.SFunction1_o4_b = (real_T)
14749 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->delaytime;
14750 }
14751
14752 /* ... Encode Simulink signals of TX and RM blocks*/
14753 {
14754 rtican_Signal_t CAN_Sgn;
14755 UInt32 i;
14756
14757 /* Initialize the static message data to zero */
14758 for (i=0; i<8; i++ )
14759 CAN_Msg[i] = 0;
14760
14761 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
14762 /* Add or substract 0.5 in order to round to nearest integer */
14763 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[0] )
14764 + 0.5);
14765 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14766 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14767
14768 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
14769 /* Add or substract 0.5 in order to round to nearest integer */
14770 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[1] )
14771 + 0.5);
14772 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14773 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14774
14775 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
14776 /* Add or substract 0.5 in order to round to nearest integer */
14777 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[2] )
14778 + 0.5);
14779 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14780 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14781
14782 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
14783 /* Add or substract 0.5 in order to round to nearest integer */
14784 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[3] )
14785 + 0.5);
14786 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14787 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14788
14789 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
14790 /* Add or substract 0.5 in order to round to nearest integer */
14791 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[4] )
14792 + 0.5);
14793 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14794 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14795
14796 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
14797 /* Add or substract 0.5 in order to round to nearest integer */
14798 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[5] )
14799 + 0.5);
14800 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14801 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14802
14803 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
14804 /* Add or substract 0.5 in order to round to nearest integer */
14805 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[6] )
14806 + 0.5);
14807 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14808 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
14809
14810 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
14811 /* Add or substract 0.5 in order to round to nearest integer */
14812 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_dm[7] )
14813 + 0.5);
14814 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14815 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14816 }
14817
14818 delayTime = (Float32) L4_MABX_P.Constant_Value_id / (1700);
14819
14820 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14821 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFEFE4], 8,
14822 &(CAN_Msg[0]), delayTime);
14823 }
14824 }
14825
14826 /* End of Outputs for SubSystem: '<S966>/PropB_REAX_1_E4' */
14827
14828 /* DataTypeConversion: '<S945>/Data Type Conversion' incorporates:
14829 * Constant: '<S856>/CANT_VDC2_0B_CHANNEL_APV'
14830 */
14831 L4_MABX_B.DataTypeConversion_az = (uint8_T)
14832 L4_MABX_P.CANT_VDC2_0B_CHANNEL_APV_Value;
14833
14834 /* S-Function (sfix_bitop): '<S973>/Operator' */
14835 L4_MABX_B.Operator_mh = (uint8_T)(L4_MABX_B.DataTypeConversion_az &
14836 L4_MABX_P.Operator_BitMask_nm);
14837
14838 /* DataTypeConversion: '<S973>/DataType' */
14839 L4_MABX_B.DataType_j2i = L4_MABX_B.Operator_mh;
14840
14841 /* ArithShift: '<S945>/Shift_Arithmetic 3' */
14842 L4_MABX_B.Shift_Arithmetic3_g = ldexp(L4_MABX_B.DataType_j2i, (-4));
14843
14844 /* DataTypeConversion: '<S945>/Data Type Conversion6' */
14845 L4_MABX_B.DataTypeConversion6_lq = (L4_MABX_B.Shift_Arithmetic3_g != 0.0);
14846
14847 /* Outputs for Enabled SubSystem: '<S975>/VDC2_0B' incorporates:
14848 * EnablePort: '<S976>/Enable'
14849 */
14850 if (L4_MABX_B.DataTypeConversion6_lq) {
14851 /* S-Function (rti_commonblock): '<S976>/S-Function1' */
14852 /* This comment workarounds a code generation problem */
14853
14854 /* dSPACE RTICAN TX Message Block: "VDC2_0B" Id:418384139 */
14855 {
14856 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
14857
14858 Float32 delayTime = 0.0;
14859
14860 /* ... Read status and timestamp info (previous message) */
14861 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]);
14862
14863 /* Convert timestamp */
14864 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->processed) {
14865 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp =
14866 rtk_dsts_time_to_simtime_convert
14867 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp);
14868 }
14869
14870 /* Messages with timestamp zero have been received in pause/stop state
14871 and must not be handled.
14872 */
14873 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp > 0.0) {
14874 L4_MABX_B.SFunction1_o1_l = (real_T)
14875 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->processed;
14876 L4_MABX_B.SFunction1_o2_e1 = (real_T)
14877 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp;
14878 L4_MABX_B.SFunction1_o3_e2 = (real_T)
14879 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->deltatime;
14880 L4_MABX_B.SFunction1_o4_ju = (real_T)
14881 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->delaytime;
14882 }
14883
14884 /* ... Encode Simulink signals of TX and RM blocks*/
14885 {
14886 rtican_Signal_t CAN_Sgn;
14887
14888 /* ...... "SteerWheelAngle" (0|16, standard signal, unsigned int, little endian) */
14889 /* Add or substract 0.5 in order to round to nearest integer */
14890 CAN_Sgn.UnsignedSgn = (UInt32) (( SteerWheelAngle - ( -31.374 ) ) /
14891 0.0009765625 + 0.5);
14892 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14893 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14894 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
14895
14896 /* ...... "SteerWheelTurnCounter" (16|6, standard signal, unsigned int, little endian) */
14897 /* Add or substract 0.5 in order to round to nearest integer */
14898 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.SFunction1_o2_ix - ( -32 ) +
14899 0.5);
14900 CAN_Sgn.UnsignedSgn &= 0x0000003F;
14901 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14902
14903 /* ...... "SteerWheelAngleSensorType" (22|2, standard signal, unsigned int, little endian) */
14904 /* Add or substract 0.5 in order to round to nearest integer */
14905 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o3_dm ) + 0.5);
14906 CAN_Sgn.UnsignedSgn &= 0x00000003;
14907 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
14908 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14909
14910 /* ...... "YawRate" (24|16, standard signal, unsigned int, little endian) */
14911 /* Add or substract 0.5 in order to round to nearest integer */
14912 CAN_Sgn.UnsignedSgn = (UInt32) (( YawRate - ( -3.92 ) ) /
14913 0.0001220703125 + 0.5);
14914 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14915 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14916 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
14917
14918 /* ...... "LateralAcceleration" (40|16, standard signal, unsigned int, little endian) */
14919 /* Add or substract 0.5 in order to round to nearest integer */
14920 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o5_o - ( -15.687 )
14921 ) / 0.00048828125 + 0.5);
14922 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14923 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14924 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte1;
14925
14926 /* ...... "LongitudinalAcceleration" (56|8, standard signal, unsigned int, little endian) */
14927 /* Add or substract 0.5 in order to round to nearest integer */
14928 CAN_Sgn.UnsignedSgn = (UInt32) (( SPN1810_LongitudinalAcceleration -
14929 ( -12.5 ) ) / 0.1 + 0.5);
14930 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14931 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14932 }
14933
14934 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14935 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B], 8,
14936 &(CAN_Msg[0]), delayTime);
14937 }
14938 }
14939
14940 /* End of Outputs for SubSystem: '<S975>/VDC2_0B' */
14941
14942 /* S-Function (sfix_bitop): '<S969>/Operator' */
14943 L4_MABX_B.Operator_dz = (uint8_T)(L4_MABX_B.DataTypeConversion_az &
14944 L4_MABX_P.Operator_BitMask_g3);
14945
14946 /* DataTypeConversion: '<S969>/DataType' */
14947 L4_MABX_B.DataType_eg = L4_MABX_B.Operator_dz;
14948
14949 /* S-Function (sfix_bitop): '<S970>/Operator' */
14950 L4_MABX_B.Operator_ajy = (uint8_T)(L4_MABX_B.DataTypeConversion_az &
14951 L4_MABX_P.Operator_BitMask_dm);
14952
14953 /* DataTypeConversion: '<S970>/DataType' */
14954 L4_MABX_B.DataType_o = L4_MABX_B.Operator_ajy;
14955
14956 /* S-Function (sfix_bitop): '<S971>/Operator' */
14957 L4_MABX_B.Operator_kz = (uint8_T)(L4_MABX_B.DataTypeConversion_az &
14958 L4_MABX_P.Operator_BitMask_b1);
14959
14960 /* DataTypeConversion: '<S971>/DataType' */
14961 L4_MABX_B.DataType_jw = L4_MABX_B.Operator_kz;
14962
14963 /* S-Function (sfix_bitop): '<S972>/Operator' */
14964 L4_MABX_B.Operator_bl = (uint8_T)(L4_MABX_B.DataTypeConversion_az &
14965 L4_MABX_P.Operator_BitMask_m4);
14966
14967 /* DataTypeConversion: '<S972>/DataType' */
14968 L4_MABX_B.DataType_d = L4_MABX_B.Operator_bl;
14969
14970 /* S-Function (sfix_bitop): '<S974>/Operator' */
14971 L4_MABX_B.Operator_g4g = (uint8_T)(L4_MABX_B.DataTypeConversion_az &
14972 L4_MABX_P.Operator_BitMask_je);
14973
14974 /* DataTypeConversion: '<S974>/DataType' */
14975 L4_MABX_B.DataType_k4n = L4_MABX_B.Operator_g4g;
14976
14977 /* DataTypeConversion: '<S945>/Data Type Conversion1' */
14978 L4_MABX_B.DataTypeConversion1_fm = (L4_MABX_B.DataType_eg != 0);
14979
14980 /* ArithShift: '<S945>/Shift_Arithmetic ' */
14981 L4_MABX_B.Shift_Arithmetic_d = ldexp(L4_MABX_B.DataType_o, (-1));
14982
14983 /* DataTypeConversion: '<S945>/Data Type Conversion3' */
14984 L4_MABX_B.DataTypeConversion3_kn = (L4_MABX_B.Shift_Arithmetic_d != 0.0);
14985
14986 /* ArithShift: '<S945>/Shift_Arithmetic 1' */
14987 L4_MABX_B.Shift_Arithmetic1_g = ldexp(L4_MABX_B.DataType_jw, (-2));
14988
14989 /* DataTypeConversion: '<S945>/Data Type Conversion4' */
14990 L4_MABX_B.DataTypeConversion4_ng = (L4_MABX_B.Shift_Arithmetic1_g != 0.0);
14991
14992 /* ArithShift: '<S945>/Shift_Arithmetic 2' */
14993 L4_MABX_B.Shift_Arithmetic2_k = ldexp(L4_MABX_B.DataType_d, (-3));
14994
14995 /* DataTypeConversion: '<S945>/Data Type Conversion5' */
14996 L4_MABX_B.DataTypeConversion5_an = (L4_MABX_B.Shift_Arithmetic2_k != 0.0);
14997
14998 /* ArithShift: '<S945>/Shift_Arithmetic 4' */
14999 L4_MABX_B.Shift_Arithmetic4_o = ldexp(L4_MABX_B.DataType_k4n, (-5));
15000
15001 /* DataTypeConversion: '<S945>/Data Type Conversion7' */
15002 L4_MABX_B.DataTypeConversion7_d = (L4_MABX_B.Shift_Arithmetic4_o != 0.0);
15003
15004 /* Logic: '<S1006>/Logical Operator1' */
15005 L4_MABX_B.LogicalOperator1_ef = !L4_MABX_B.Operator_MX;
15006
15007 /* Logic: '<S1006>/Logical Operator' */
15008 L4_MABX_B.LogicalOperator_my = (L4_MABX_B.LogicalOperator1_ef &&
15009 L4_MABX_B.Operator_MN);
15010
15011 /* RelationalOperator: '<S1010>/Operator' */
15012 L4_MABX_B.Operator_pr = (L4_MABX_B.Switch1_ga == L4_MABX_B.Width_n);
15013
15014 /* End of Outputs for SubSystem: '<S851>/CAN_TX_10ms' */
15015
15016 /* Outputs for Atomic SubSystem: '<S851>/CAN_TX_20ms' */
15017
15018 /* RateTransition: '<S1017>/TmpRTBAtDivide1Inport1' */
15019 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
15020 L4_MABX_B.BrakingPID_Y_h = L4_MABX_B.BrakingPID_Y_k;
15021 L4_MABX_B.AutonomousOutputEnabled_p = AutonomousOutputEnabled;
15022 L4_MABX_B.BrakingControlActive_f = L4_MABX_B.F_Brake_control_active;
15023 L4_MABX_B.TmpRTBAtLogicalOperator8Inport1 = AutonomousOutputEnabled;
15024 L4_MABX_B.TmpRTBAtLogicalOperator1Inport2 = AutonomousOutputEnabled;
15025 L4_MABX_B.TmpRTBAtUnit_DelayInport1 = AutonomousOutputEnabled;
15026 L4_MABX_B.BrakingPID_Y_h3 = L4_MABX_B.BrakingPID_Y_k;
15027 L4_MABX_B.FrontAxleSpeed_d = L4_MABX_B.SFunction1_o1_loi;
15028 L4_MABX_B.SPN1807_SteeringWheelAngle_o = SteerWheelAngle;
15029 L4_MABX_B.SPN1808_YawRate_f = YawRate;
15030 L4_MABX_B.SPN1810_LongitudinalAccelerat_m = SPN1810_LongitudinalAcceleration;
15031 }
15032
15033 /* End of Outputs for SubSystem: '<S851>/CAN_TX_20ms' */
15034
15035 /* Outputs for Atomic SubSystem: '<S851>/CAN_TX_5000ms' */
15036
15037 /* RateTransition: '<S1046>/TmpRTBAtOperatorInport2' */
15038 if (L4_MABX_M->Timing.RateInteraction.TID0_7 == 1) {
15039 L4_MABX_B.TmpRTBAtOperatorInport2 = AutonomousOutputEnabled;
15040 }
15041
15042 /* End of RateTransition: '<S1046>/TmpRTBAtOperatorInport2' */
15043
15044 /* End of Outputs for SubSystem: '<S851>/CAN_TX_5000ms' */
15045
15046 /* Outputs for Enabled SubSystem: '<S642>/TC1_03_05' incorporates:
15047 * EnablePort: '<S643>/Enable'
15048 */
15049 /* Constant: '<S457>/Constant' */
15050 if (L4_MABX_P.Constant_Value_eb) {
15051 /* S-Function (rti_commonblock): '<S643>/S-Function1' */
15052 /* This comment workarounds a code generation problem */
15053
15054 /* dSPACE RTICAN RX Message Block: "TC1_03_05" Id:201392901 */
15055 {
15056 UInt32 *CAN_Msg;
15057 static dsfloat time_old = 0.0;
15058
15059 /* Read status and timestamp info (previous message) */
15060 if (can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].timestamp !=
15061 time_old) {
15062 /* ... save timestamp info for the calculation of the RX status
15063 during the consecutive sample hit*/
15064 time_old = can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].
15065 timestamp;
15066
15067 /* ... set the processed flag to one */
15068 L4_MABX_B.SFunction1_o26 = 1.0;
15069 L4_MABX_B.SFunction1_o27 = (real_T)
15070 can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].timestamp;
15071 L4_MABX_B.SFunction1_o28 = (real_T)
15072 can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].deltatime;
15073 CAN_Msg = can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].data;
15074
15075 /* Decode CAN message */
15076 {
15077 {
15078 rtican_Signal_t CAN_Sgn;
15079
15080 /* ...... "SPN681_TransGearShiftInhibitReq" (0|2, standard signal, unsigned int, little endian) */
15081 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15082 CAN_Sgn.UnsignedSgn &= 0x00000003;
15083 L4_MABX_B.SFunction1_o1_cm = ((real_T) CAN_Sgn.UnsignedSgn);
15084
15085 /* ...... "SPN682_TransTrqConvLockupDisReq" (2|2, standard signal, unsigned int, little endian) */
15086 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15087 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
15088 CAN_Sgn.UnsignedSgn &= 0x00000003;
15089 L4_MABX_B.SFunction1_o2_do = ((real_T) CAN_Sgn.UnsignedSgn);
15090
15091 /* ...... "SPN683_DisengageDrivelineReq" (4|2, standard signal, unsigned int, little endian) */
15092 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15093 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
15094 CAN_Sgn.UnsignedSgn &= 0x00000003;
15095 L4_MABX_B.SFunction1_o3_gr = ((real_T) CAN_Sgn.UnsignedSgn);
15096
15097 /* ...... "SPN4242_TransRevGearShiftInhibRq" (6|2, standard signal, unsigned int, little endian) */
15098 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15099 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
15100 CAN_Sgn.UnsignedSgn &= 0x00000003;
15101 L4_MABX_B.SFunction1_o4_ms = ((real_T) CAN_Sgn.UnsignedSgn);
15102
15103 /* ...... "SPN684_RequestedPercClutchSlip" (8|8, standard signal, unsigned int, little endian) */
15104 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15105 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15106 L4_MABX_B.SFunction1_o5_n = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
15107
15108 /* ...... "SPN525_TransRequestedGear" (16|8, standard signal, unsigned int, little endian) */
15109 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
15110 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15111 L4_MABX_B.SFunction1_o6_h = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
15112
15113 /* ...... "SPN685_DisengageDiffLockRqFrAx1" (24|2, standard signal, unsigned int, little endian) */
15114 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
15115 CAN_Sgn.UnsignedSgn &= 0x00000003;
15116 L4_MABX_B.SFunction1_o7_e = ((real_T) CAN_Sgn.UnsignedSgn);
15117
15118 /* ...... "SPN686_DisengageDiffLockRqFrAx2" (26|2, standard signal, unsigned int, little endian) */
15119 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
15120 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
15121 CAN_Sgn.UnsignedSgn &= 0x00000003;
15122 L4_MABX_B.SFunction1_o8_k = ((real_T) CAN_Sgn.UnsignedSgn);
15123
15124 /* ...... "SPN687_DisengageDiffLockRqRrAx1" (28|2, standard signal, unsigned int, little endian) */
15125 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
15126 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
15127 CAN_Sgn.UnsignedSgn &= 0x00000003;
15128 L4_MABX_B.SFunction1_o9_c = ((real_T) CAN_Sgn.UnsignedSgn);
15129
15130 /* ...... "SPN688_DisengageDiffLockRqRrAx2" (30|2, standard signal, unsigned int, little endian) */
15131 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
15132 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
15133 CAN_Sgn.UnsignedSgn &= 0x00000003;
15134 L4_MABX_B.SFunction1_o10_b = ((real_T) CAN_Sgn.UnsignedSgn);
15135
15136 /* ...... "SPN689_DisengageDiffLockRqC" (32|2, standard signal, unsigned int, little endian) */
15137 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
15138 CAN_Sgn.UnsignedSgn &= 0x00000003;
15139 L4_MABX_B.SFunction1_o11 = ((real_T) CAN_Sgn.UnsignedSgn);
15140
15141 /* ...... "SPN690_DisengageDiffLockRqCF" (34|2, standard signal, unsigned int, little endian) */
15142 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
15143 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
15144 CAN_Sgn.UnsignedSgn &= 0x00000003;
15145 L4_MABX_B.SFunction1_o12 = ((real_T) CAN_Sgn.UnsignedSgn);
15146
15147 /* ...... "SPN691_DisengageDiffLockRqCR" (36|2, standard signal, unsigned int, little endian) */
15148 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
15149 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
15150 CAN_Sgn.UnsignedSgn &= 0x00000003;
15151 L4_MABX_B.SFunction1_o13 = ((real_T) CAN_Sgn.UnsignedSgn);
15152
15153 /* ...... "SPN5762_TransLoadRedInhibitRq" (38|2, standard signal, unsigned int, little endian) */
15154 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
15155 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
15156 CAN_Sgn.UnsignedSgn &= 0x00000003;
15157 L4_MABX_B.SFunction1_o14 = ((real_T) CAN_Sgn.UnsignedSgn);
15158
15159 /* ...... "SPN1852_TransmissionMode1" (40|2, standard signal, unsigned int, little endian) */
15160 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
15161 CAN_Sgn.UnsignedSgn &= 0x00000003;
15162 L4_MABX_B.SFunction1_o15 = ((real_T) CAN_Sgn.UnsignedSgn);
15163
15164 /* ...... "SPN1853_TransmissionMode2" (42|2, standard signal, unsigned int, little endian) */
15165 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
15166 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
15167 CAN_Sgn.UnsignedSgn &= 0x00000003;
15168 L4_MABX_B.SFunction1_o16 = ((real_T) CAN_Sgn.UnsignedSgn);
15169
15170 /* ...... "SPN1854_TransmissionMode3" (44|2, standard signal, unsigned int, little endian) */
15171 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
15172 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
15173 CAN_Sgn.UnsignedSgn &= 0x00000003;
15174 L4_MABX_B.SFunction1_o17 = ((real_T) CAN_Sgn.UnsignedSgn);
15175
15176 /* ...... "SPN1855_TransmissionMode4" (46|2, standard signal, unsigned int, little endian) */
15177 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
15178 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
15179 CAN_Sgn.UnsignedSgn &= 0x00000003;
15180 L4_MABX_B.SFunction1_o18 = ((real_T) CAN_Sgn.UnsignedSgn);
15181
15182 /* ...... "SPN7695_TransAutoNeutralRequest" (48|2, standard signal, unsigned int, little endian) */
15183 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
15184 CAN_Sgn.UnsignedSgn &= 0x00000003;
15185 L4_MABX_B.SFunction1_o19 = ((real_T) CAN_Sgn.UnsignedSgn);
15186
15187 /* ...... "SPN4255_TransRequestedLaunchGear" (50|4, standard signal, unsigned int, little endian) */
15188 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
15189 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
15190 CAN_Sgn.UnsignedSgn &= 0x0000000F;
15191 L4_MABX_B.SFunction1_o20 = ((real_T) CAN_Sgn.UnsignedSgn);
15192
15193 /* ...... "SPN2985_TransShiftSelDispModeSw" (54|2, standard signal, unsigned int, little endian) */
15194 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
15195 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
15196 CAN_Sgn.UnsignedSgn &= 0x00000003;
15197 L4_MABX_B.SFunction1_o21 = ((real_T) CAN_Sgn.UnsignedSgn);
15198
15199 /* ...... "SPN4246_TransmissionMode5" (56|2, standard signal, unsigned int, little endian) */
15200 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
15201 CAN_Sgn.UnsignedSgn &= 0x00000003;
15202 L4_MABX_B.SFunction1_o22 = ((real_T) CAN_Sgn.UnsignedSgn);
15203
15204 /* ...... "SPN4247_TransmissionMode6" (58|2, standard signal, unsigned int, little endian) */
15205 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
15206 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
15207 CAN_Sgn.UnsignedSgn &= 0x00000003;
15208 L4_MABX_B.SFunction1_o23 = ((real_T) CAN_Sgn.UnsignedSgn);
15209
15210 /* ...... "SPN4248_TransmissionMode7" (60|2, standard signal, unsigned int, little endian) */
15211 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
15212 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
15213 CAN_Sgn.UnsignedSgn &= 0x00000003;
15214 L4_MABX_B.SFunction1_o24 = ((real_T) CAN_Sgn.UnsignedSgn);
15215
15216 /* ...... "SPN4249_TransmissionMode8" (62|2, standard signal, unsigned int, little endian) */
15217 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
15218 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
15219 CAN_Sgn.UnsignedSgn &= 0x00000003;
15220 L4_MABX_B.SFunction1_o25 = ((real_T) CAN_Sgn.UnsignedSgn);
15221 }
15222 }
15223 } else {
15224 /* set RX status to 0 because no new message has arrived */
15225 L4_MABX_B.SFunction1_o26 = 0.0;
15226 }
15227 }
15228 }
15229
15230 /* End of Constant: '<S457>/Constant' */
15231 /* End of Outputs for SubSystem: '<S642>/TC1_03_05' */
15232
15233 /* Outputs for Atomic SubSystem: '<S851>/CAN_TX_50ms' */
15234
15235 /* RateTransition: '<S1056>/TmpRTBAtCCVS1_E3Inport1' */
15236 if (L4_MABX_M->Timing.RateInteraction.TID0_2 == 1) {
15237 L4_MABX_B.TwoSpeedAxleSwitch = L4_MABX_B.SFunction1_o1_ap;
15238 L4_MABX_B.ParkingBrakeSwitch = L4_MABX_B.SFunction1_o2_ge;
15239 L4_MABX_B.CruiseCtrlPauseSwitch = L4_MABX_B.SFunction1_o3_kf;
15240 L4_MABX_B.ParkBrakeReleaseInhibitRq = L4_MABX_B.SFunction1_o4_ay;
15241 L4_MABX_B.WheelBasedVehicleSpeed_l = WheelBasedVehicleSpeed;
15242 L4_MABX_B.CruiseCtrlActive = L4_MABX_B.SFunction1_o6_i;
15243 L4_MABX_B.CruiseCtrlEnableSwitch_e = L4_MABX_B.SFunction1_o7_bt;
15244 L4_MABX_B.BrakeSwitch_i = BrakeSwitch;
15245 L4_MABX_B.ClutchSwitch = L4_MABX_B.SFunction1_o9_ey;
15246 L4_MABX_B.CruiseCtrlSetSwitch = L4_MABX_B.SFunction1_o10_gs;
15247 L4_MABX_B.CruiseCtrlCoastSwitch = L4_MABX_B.SFunction1_o11_hb;
15248 L4_MABX_B.CruiseCtrlResumeSwitch = L4_MABX_B.SFunction1_o12_j;
15249 L4_MABX_B.CruiseCtrlAccelerateSwitch = L4_MABX_B.SFunction1_o13_m;
15250 L4_MABX_B.CruiseCtrlSetSpeed = L4_MABX_B.SFunction1_o14_gr;
15251 L4_MABX_B.PTOGovernorState = L4_MABX_B.SFunction1_o15_a;
15252 L4_MABX_B.CruiseCtrlStates = L4_MABX_B.SFunction1_o16_o;
15253 L4_MABX_B.EngIdleIncrementSwitch = L4_MABX_B.SFunction1_o17_c;
15254 L4_MABX_B.EngIdleDecrementSwitch = L4_MABX_B.SFunction1_o18_e;
15255 L4_MABX_B.EngTestModeSwitch = L4_MABX_B.SFunction1_o19_g;
15256 L4_MABX_B.EngShutdownOverrideSwitch = L4_MABX_B.SFunction1_o20_j;
15257 L4_MABX_B.SPN681_TransGearShiftInhibitReq = L4_MABX_B.SFunction1_o1_cm;
15258 L4_MABX_B.SPN682_TransTrqConvLockupDisReq = L4_MABX_B.SFunction1_o2_do;
15259 L4_MABX_B.SPN683_DisengageDrivelineReq = L4_MABX_B.SFunction1_o3_gr;
15260 L4_MABX_B.SPN4242_TransRevGearShiftInhibR = L4_MABX_B.SFunction1_o4_ms;
15261 L4_MABX_B.SPN684_RequestedPercClutchSlip = L4_MABX_B.SFunction1_o5_n;
15262 L4_MABX_B.SPN525_TransRequestedGear = L4_MABX_B.SFunction1_o6_h;
15263 L4_MABX_B.SPN685_DisengageDiffLockRqFrAx1 = L4_MABX_B.SFunction1_o7_e;
15264 L4_MABX_B.SPN686_DisengageDiffLockRqFrAx2 = L4_MABX_B.SFunction1_o8_k;
15265 L4_MABX_B.SPN687_DisengageDiffLockRqRrAx1 = L4_MABX_B.SFunction1_o9_c;
15266 L4_MABX_B.SPN688_DisengageDiffLockRqRrAx2 = L4_MABX_B.SFunction1_o10_b;
15267 L4_MABX_B.SPN689_DisengageDiffLockRqC = L4_MABX_B.SFunction1_o11;
15268 L4_MABX_B.SPN690_DisengageDiffLockRqCF = L4_MABX_B.SFunction1_o12;
15269 L4_MABX_B.SPN691_DisengageDiffLockRqCR = L4_MABX_B.SFunction1_o13;
15270 L4_MABX_B.SPN5762_TransLoadRedInhibitRq = L4_MABX_B.SFunction1_o14;
15271 L4_MABX_B.SPN1852_TransmissionMode1 = L4_MABX_B.SFunction1_o15;
15272 L4_MABX_B.SPN1853_TransmissionMode2 = L4_MABX_B.SFunction1_o16;
15273 L4_MABX_B.SPN1854_TransmissionMode3 = L4_MABX_B.SFunction1_o17;
15274 L4_MABX_B.SPN1855_TransmissionMode4 = L4_MABX_B.SFunction1_o18;
15275 L4_MABX_B.SPN7695_TransAutoNeutralRequest = L4_MABX_B.SFunction1_o19;
15276 L4_MABX_B.SPN4255_TransRequestedLaunchGea = L4_MABX_B.SFunction1_o20;
15277 L4_MABX_B.SPN2985_TransShiftSelDispModeSw = L4_MABX_B.SFunction1_o21;
15278 L4_MABX_B.SPN4246_TransmissionMode5 = L4_MABX_B.SFunction1_o22;
15279 L4_MABX_B.SPN4247_TransmissionMode6 = L4_MABX_B.SFunction1_o23;
15280 L4_MABX_B.SPN4248_TransmissionMode7 = L4_MABX_B.SFunction1_o24;
15281 L4_MABX_B.SPN4249_TransmissionMode8 = L4_MABX_B.SFunction1_o25;
15282 }
15283
15284 /* End of Outputs for SubSystem: '<S851>/CAN_TX_50ms' */
15285
15286 /* Outputs for Enabled SubSystem: '<S640>/SystemTime_01' incorporates:
15287 * EnablePort: '<S641>/Enable'
15288 */
15289 /* Constant: '<S456>/Constant' */
15290 if (L4_MABX_P.Constant_Value_a0 > 0.0) {
15291 /* S-Function (rti_commonblock): '<S641>/S-Function1' */
15292 /* This comment workarounds a code generation problem */
15293
15294 /* dSPACE RTICAN RX Message Block: "SystemTime_01" Id:233836544 */
15295 {
15296 UInt32 *CAN_Msg;
15297 static dsfloat time_old = 0.0;
15298
15299 /* Read status and timestamp info (previous message) */
15300 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].timestamp !=
15301 time_old) {
15302 /* ... save timestamp info for the calculation of the RX status
15303 during the consecutive sample hit*/
15304 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].
15305 timestamp;
15306
15307 /* ... set the processed flag to one */
15308 L4_MABX_B.SFunction1_o5_a = 1.0;
15309 L4_MABX_B.SFunction1_o6_f = (real_T)
15310 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].timestamp;
15311 L4_MABX_B.SFunction1_o7_k = (real_T)
15312 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].deltatime;
15313 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].data;
15314
15315 /* Decode CAN message */
15316 {
15317 {
15318 rtican_Signal_t CAN_Sgn;
15319
15320 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
15321 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15322 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15323 L4_MABX_B.SFunction1_o1_jp = ((real_T) CAN_Sgn.UnsignedSgn);
15324
15325 /* ...... "Source" (8|4, standard signal, unsigned int, little endian) */
15326 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15327 CAN_Sgn.UnsignedSgn &= 0x0000000F;
15328 L4_MABX_B.SFunction1_o2_aj = ((real_T) CAN_Sgn.UnsignedSgn);
15329
15330 /* ...... "Date" (16|16, standard signal, unsigned int, little endian) */
15331 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
15332 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
15333 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
15334 L4_MABX_B.SFunction1_o3_jn = ((real_T) CAN_Sgn.UnsignedSgn);
15335
15336 /* ...... "Time" (32|32, standard signal, unsigned int, little endian) */
15337 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
15338 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
15339 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
15340 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
15341 L4_MABX_B.SFunction1_o4_m0 = 0.0001 * ( ((real_T)
15342 CAN_Sgn.UnsignedSgn) );
15343 }
15344 }
15345 } else {
15346 /* set RX status to 0 because no new message has arrived */
15347 L4_MABX_B.SFunction1_o5_a = 0.0;
15348 }
15349 }
15350 }
15351
15352 /* End of Constant: '<S456>/Constant' */
15353 /* End of Outputs for SubSystem: '<S640>/SystemTime_01' */
15354
15355 /* DataTypeConversion: '<S640>/Data Type Conversion8' */
15356 L4_MABX_B.RX_status_n = (L4_MABX_B.SFunction1_o5_a != 0.0);
15357
15358 /* Logic: '<S1070>/Operator' incorporates:
15359 * Constant: '<S1068>/Constant'
15360 */
15361 L4_MABX_B.Operator_mn = (L4_MABX_P.Constant_Value_de && L4_MABX_B.RX_status_n);
15362
15363 /* DataTypeConversion: '<S1070>/DataType' */
15364 L4_MABX_B.DataType_lx = L4_MABX_B.Operator_mn;
15365
15366 /* Outputs for Enabled SubSystem: '<S1069>/Std_SystemTime_01' incorporates:
15367 * EnablePort: '<S1071>/Enable'
15368 */
15369 if (L4_MABX_B.DataType_lx) {
15370 /* S-Function (rti_commonblock): '<S1071>/S-Function1' incorporates:
15371 * Constant: '<S1069>/Constant'
15372 * Constant: '<S1069>/Constant1'
15373 */
15374 /* This comment workarounds a code generation problem */
15375
15376 /* dSPACE RTICAN TX Message Block: "Std_SystemTime_01" Id:5 */
15377 {
15378 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15379 0x00 };
15380
15381 Float32 delayTime = 0.0;
15382
15383 /* link this pointer to CAN_Msg for use in initialize_io_units() */
15384 CANTP1_PTR_M3_C2_STD_0x5 = &(CAN_Msg[0]);
15385
15386 /* ... perform loop-back if required */
15387 if (L4_MABX_P.Constant1_Value_ep > 0.5) {
15388 /* ... updating the used tx-clientbuffer */
15389 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_STD_0X5->module,
15390 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->queue );
15391
15392 /* ... Read status and timestamp info perform loop-back (previous message) */
15393 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_STD_0X5,
15394 8, // datalen
15395 &(CAN_Msg[0]),
15396 CANTP1_RX_SPMSG_M3_C2_STD);
15397
15398 /* Convert timestamp */
15399 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed) {
15400 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp =
15401 rtk_dsts_time_to_simtime_convert
15402 (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp);
15403 }
15404 } else {
15405 /* ... Read status and timestamp info (previous message) */
15406 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_STD_0X5);
15407
15408 /* Convert timestamp */
15409 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed) {
15410 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp =
15411 rtk_dsts_time_to_simtime_convert
15412 (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp);
15413 }
15414 }
15415
15416 /* Messages with timestamp zero have been received in pause/stop state
15417 and must not be handled.
15418 */
15419 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp > 0.0) {
15420 L4_MABX_B.SFunction1_o1_c = (real_T)
15421 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed;
15422 L4_MABX_B.SFunction1_o2_i = (real_T)
15423 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp;
15424 L4_MABX_B.SFunction1_o3 = (real_T)
15425 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->deltatime;
15426 L4_MABX_B.SFunction1_o4 = (real_T)
15427 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->delaytime;
15428 }
15429
15430 /* ... Encode Simulink signals of TX and RM blocks*/
15431 {
15432 rtican_Signal_t CAN_Sgn;
15433 UInt32 i;
15434
15435 /* Initialize the static message data to zero */
15436 for (i=0; i<8; i++ )
15437 CAN_Msg[i] = 0;
15438
15439 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
15440 /* Add or substract 0.5 in order to round to nearest integer */
15441 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o1_jp ) + 0.5);
15442 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15443 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15444
15445 /* ...... "Source" (8|4, standard signal, unsigned int, little endian) */
15446 /* Add or substract 0.5 in order to round to nearest integer */
15447 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o2_aj ) + 0.5);
15448 CAN_Sgn.UnsignedSgn &= 0x0000000F;
15449 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15450
15451 /* ...... "Date" (16|16, standard signal, unsigned int, little endian) */
15452 /* Add or substract 0.5 in order to round to nearest integer */
15453 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o3_jn ) + 0.5);
15454 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
15455 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15456 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
15457
15458 /* ...... "Time" (32|32, standard signal, unsigned int, little endian) */
15459 /* Add or substract 0.5 in order to round to nearest integer */
15460 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o4_m0 - ( 0 ) ) /
15461 0.0001 + 0.5);
15462 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15463 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
15464 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte2;
15465 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte3;
15466 }
15467
15468 delayTime = (Float32) L4_MABX_P.Constant_Value_gf / (2000);
15469
15470 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15471 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X5], 8, &(CAN_Msg[0]),
15472 delayTime);
15473 }
15474 }
15475
15476 /* End of Outputs for SubSystem: '<S1069>/Std_SystemTime_01' */
15477
15478 /* Constant: '<S1060>/Byte1' */
15479 L4_MABX_B.VectorConcatenate[0] = L4_MABX_P.Byte1_Value_g;
15480
15481 /* Constant: '<S1060>/Byte2' */
15482 L4_MABX_B.VectorConcatenate[1] = L4_MABX_P.Byte2_Value_l;
15483
15484 /* Constant: '<S1060>/Byte3' */
15485 L4_MABX_B.VectorConcatenate[2] = L4_MABX_P.Byte3_Value_l;
15486
15487 /* Constant: '<S1060>/Byte4' */
15488 L4_MABX_B.VectorConcatenate[3] = L4_MABX_P.Byte4_Value_e;
15489
15490 /* Constant: '<S1060>/Byte5' */
15491 L4_MABX_B.VectorConcatenate[4] = L4_MABX_P.Byte5_Value_e;
15492
15493 /* Constant: '<S1060>/Byte6' */
15494 L4_MABX_B.VectorConcatenate[5] = L4_MABX_P.Byte6_Value_i;
15495
15496 /* Constant: '<S1060>/Byte7' */
15497 L4_MABX_B.VectorConcatenate[6] = L4_MABX_P.Byte7_Value_j;
15498
15499 /* Constant: '<S1060>/Byte8' */
15500 L4_MABX_B.VectorConcatenate[7] = L4_MABX_P.Byte8_Value_e;
15501
15502 /* DataTypeConversion: '<S1064>/Data Type Conversion' */
15503 for (i = 0; i < 8; i++) {
15504 L4_MABX_B.DataTypeConversion[i] = L4_MABX_B.VectorConcatenate[i];
15505 }
15506
15507 /* End of DataTypeConversion: '<S1064>/Data Type Conversion' */
15508
15509 /* UnitDelay: '<S861>/Unit Delay2' */
15510 L4_MABX_B.UnitDelay2 = L4_MABX_DW.UnitDelay2_DSTATE;
15511
15512 /* Outputs for Triggered SubSystem: '<S1064>/CAN_TYPE1_TX_M1_C1' incorporates:
15513 * TriggerPort: '<S1066>/Trigger'
15514 */
15515 zcEvent = (L4_MABX_B.UnitDelay2 &&
15516 (L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_n != POS_ZCSIG));
15517 if (zcEvent) {
15518 /* S-Function (rti_commonblock): '<S1066>/S-Function1' */
15519 /* This comment workarounds a code generation problem */
15520
15521 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418184965 */
15522 {
15523 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
15524
15525 Float32 delayTime = 0.0;
15526
15527 /* ... Read status and timestamp info (previous message) */
15528 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]);
15529
15530 /* Convert timestamp */
15531 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->processed) {
15532 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp =
15533 rtk_dsts_time_to_simtime_convert
15534 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp);
15535 }
15536
15537 /* Messages with timestamp zero have been received in pause/stop state
15538 and must not be handled.
15539 */
15540 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp > 0.0) {
15541 L4_MABX_B.SFunction1_o1_k = (real_T)
15542 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->processed;
15543 L4_MABX_B.SFunction1_o2_mn = (real_T)
15544 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp;
15545 L4_MABX_B.SFunction1_o3_e = (real_T)
15546 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->deltatime;
15547 L4_MABX_B.SFunction1_o4_a = (real_T)
15548 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->delaytime;
15549 }
15550
15551 /* ... Encode Simulink signals of TX and RM blocks*/
15552 {
15553 rtican_Signal_t CAN_Sgn;
15554
15555 /* ...... "Byte1" (0|8, standard signal, unsigned int, little endian) */
15556 /* Add or substract 0.5 in order to round to nearest integer */
15557 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[0] ) +
15558 0.5);
15559 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15560 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15561
15562 /* ...... "Byte2" (8|8, standard signal, unsigned int, little endian) */
15563 /* Add or substract 0.5 in order to round to nearest integer */
15564 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[1] ) +
15565 0.5);
15566 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15567 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15568
15569 /* ...... "Byte3" (16|8, standard signal, unsigned int, little endian) */
15570 /* Add or substract 0.5 in order to round to nearest integer */
15571 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[2] ) +
15572 0.5);
15573 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15574 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15575
15576 /* ...... "Byte4" (24|8, standard signal, unsigned int, little endian) */
15577 /* Add or substract 0.5 in order to round to nearest integer */
15578 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[3] ) +
15579 0.5);
15580 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15581 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
15582
15583 /* ...... "Byte5" (32|8, standard signal, unsigned int, little endian) */
15584 /* Add or substract 0.5 in order to round to nearest integer */
15585 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[4] ) +
15586 0.5);
15587 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15588 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15589
15590 /* ...... "Byte6" (40|8, standard signal, unsigned int, little endian) */
15591 /* Add or substract 0.5 in order to round to nearest integer */
15592 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[5] ) +
15593 0.5);
15594 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15595 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
15596
15597 /* ...... "Byte7" (48|8, standard signal, unsigned int, little endian) */
15598 /* Add or substract 0.5 in order to round to nearest integer */
15599 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[6] ) +
15600 0.5);
15601 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15602 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
15603
15604 /* ...... "Byte8" (56|8, standard signal, unsigned int, little endian) */
15605 /* Add or substract 0.5 in order to round to nearest integer */
15606 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[7] ) +
15607 0.5);
15608 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15609 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
15610 }
15611
15612 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15613 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05], 8,
15614 &(CAN_Msg[0]), delayTime);
15615 }
15616 }
15617
15618 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_n = L4_MABX_B.UnitDelay2;
15619
15620 /* End of Outputs for SubSystem: '<S1064>/CAN_TYPE1_TX_M1_C1' */
15621
15622 /* UnitDelay: '<S861>/Unit Delay1' */
15623 L4_MABX_B.UnitDelay1_l = L4_MABX_DW.UnitDelay1_DSTATE_c;
15624
15625 /* MultiPortSwitch: '<S861>/Multiport Switch' incorporates:
15626 * Constant: '<S1062>/Byte1'
15627 * Constant: '<S1062>/Byte2'
15628 * Constant: '<S1062>/Byte3'
15629 * Constant: '<S1062>/Byte4'
15630 * Constant: '<S1062>/Byte5'
15631 * Constant: '<S1062>/Byte6'
15632 * Constant: '<S1062>/Byte7'
15633 * Constant: '<S1062>/Byte8'
15634 * Constant: '<S1063>/Byte1'
15635 * Constant: '<S1063>/Byte2'
15636 * Constant: '<S1063>/Byte3'
15637 * Constant: '<S1063>/Byte4'
15638 * Constant: '<S1063>/Byte5'
15639 * Constant: '<S1063>/Byte6'
15640 * Constant: '<S1063>/Byte7'
15641 * Constant: '<S1063>/Byte8'
15642 */
15643 if (L4_MABX_B.UnitDelay1_l == 1) {
15644 L4_MABX_B.VectorConcatenate_b[7] = L4_MABX_P.Byte8_Value_m;
15645 L4_MABX_B.VectorConcatenate_b[6] = L4_MABX_P.Byte7_Value_o;
15646 L4_MABX_B.VectorConcatenate_b[5] = L4_MABX_P.Byte6_Value_m;
15647 L4_MABX_B.VectorConcatenate_b[4] = L4_MABX_P.Byte5_Value_b;
15648 L4_MABX_B.VectorConcatenate_b[3] = L4_MABX_P.Byte4_Value_o;
15649 L4_MABX_B.VectorConcatenate_b[2] = L4_MABX_P.Byte3_Value_g;
15650 L4_MABX_B.VectorConcatenate_b[1] = L4_MABX_P.Byte2_Value_m;
15651 L4_MABX_B.VectorConcatenate_b[0] = L4_MABX_P.Byte1_Value_n;
15652 for (i = 0; i < 8; i++) {
15653 L4_MABX_B.MultiportSwitch_fd[i] = L4_MABX_B.VectorConcatenate_b[i];
15654 }
15655 } else {
15656 L4_MABX_B.VectorConcatenate_d[7] = L4_MABX_P.Byte8_Value;
15657 L4_MABX_B.VectorConcatenate_d[6] = L4_MABX_P.Byte7_Value;
15658 L4_MABX_B.VectorConcatenate_d[5] = L4_MABX_P.Byte6_Value;
15659 L4_MABX_B.VectorConcatenate_d[4] = L4_MABX_P.Byte5_Value;
15660 L4_MABX_B.VectorConcatenate_d[3] = L4_MABX_P.Byte4_Value;
15661 L4_MABX_B.VectorConcatenate_d[2] = L4_MABX_P.Byte3_Value;
15662 L4_MABX_B.VectorConcatenate_d[1] = L4_MABX_P.Byte2_Value;
15663 L4_MABX_B.VectorConcatenate_d[0] = L4_MABX_P.Byte1_Value;
15664 for (i = 0; i < 8; i++) {
15665 L4_MABX_B.MultiportSwitch_fd[i] = L4_MABX_B.VectorConcatenate_d[i];
15666 }
15667 }
15668
15669 /* End of MultiPortSwitch: '<S861>/Multiport Switch' */
15670
15671 /* DataTypeConversion: '<S1065>/Data Type Conversion' */
15672 for (i = 0; i < 8; i++) {
15673 L4_MABX_B.DataTypeConversion_f[i] = L4_MABX_B.MultiportSwitch_fd[i];
15674 }
15675
15676 /* End of DataTypeConversion: '<S1065>/Data Type Conversion' */
15677
15678 /* UnitDelay: '<S861>/Unit Delay3' */
15679 L4_MABX_B.UnitDelay3 = L4_MABX_DW.UnitDelay3_DSTATE;
15680
15681 /* Outputs for Triggered SubSystem: '<S1065>/CAN_TYPE1_TX_M1_C1' incorporates:
15682 * TriggerPort: '<S1067>/Trigger'
15683 */
15684 zcEvent = (L4_MABX_B.UnitDelay3 &&
15685 (L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE != POS_ZCSIG));
15686 if (zcEvent) {
15687 /* S-Function (rti_commonblock): '<S1067>/S-Function1' */
15688 /* This comment workarounds a code generation problem */
15689
15690 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418119429 */
15691 {
15692 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
15693
15694 Float32 delayTime = 0.0;
15695
15696 /* ... Read status and timestamp info (previous message) */
15697 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]);
15698
15699 /* Convert timestamp */
15700 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->processed) {
15701 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp =
15702 rtk_dsts_time_to_simtime_convert
15703 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp);
15704 }
15705
15706 /* Messages with timestamp zero have been received in pause/stop state
15707 and must not be handled.
15708 */
15709 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp > 0.0) {
15710 L4_MABX_B.SFunction1_o1_n = (real_T)
15711 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->processed;
15712 L4_MABX_B.SFunction1_o2_e = (real_T)
15713 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp;
15714 L4_MABX_B.SFunction1_o3_j = (real_T)
15715 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->deltatime;
15716 L4_MABX_B.SFunction1_o4_d = (real_T)
15717 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->delaytime;
15718 }
15719
15720 /* ... Encode Simulink signals of TX and RM blocks*/
15721 {
15722 rtican_Signal_t CAN_Sgn;
15723
15724 /* ...... "Byte1" (0|8, standard signal, unsigned int, little endian) */
15725 /* Add or substract 0.5 in order to round to nearest integer */
15726 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_f[0] ) +
15727 0.5);
15728 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15729 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15730
15731 /* ...... "Byte2" (8|8, standard signal, unsigned int, little endian) */
15732 /* Add or substract 0.5 in order to round to nearest integer */
15733 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_f[1] ) +
15734 0.5);
15735 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15736 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15737
15738 /* ...... "Byte3" (16|8, standard signal, unsigned int, little endian) */
15739 /* Add or substract 0.5 in order to round to nearest integer */
15740 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_f[2] ) +
15741 0.5);
15742 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15743 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15744
15745 /* ...... "Byte4" (24|8, standard signal, unsigned int, little endian) */
15746 /* Add or substract 0.5 in order to round to nearest integer */
15747 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_f[3] ) +
15748 0.5);
15749 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15750 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
15751
15752 /* ...... "Byte5" (32|8, standard signal, unsigned int, little endian) */
15753 /* Add or substract 0.5 in order to round to nearest integer */
15754 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_f[4] ) +
15755 0.5);
15756 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15757 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15758
15759 /* ...... "Byte6" (40|8, standard signal, unsigned int, little endian) */
15760 /* Add or substract 0.5 in order to round to nearest integer */
15761 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_f[5] ) +
15762 0.5);
15763 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15764 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
15765
15766 /* ...... "Byte7" (48|8, standard signal, unsigned int, little endian) */
15767 /* Add or substract 0.5 in order to round to nearest integer */
15768 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_f[6] ) +
15769 0.5);
15770 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15771 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
15772
15773 /* ...... "Byte8" (56|8, standard signal, unsigned int, little endian) */
15774 /* Add or substract 0.5 in order to round to nearest integer */
15775 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_f[7] ) +
15776 0.5);
15777 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15778 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
15779 }
15780
15781 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15782 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05], 8,
15783 &(CAN_Msg[0]), delayTime);
15784 }
15785 }
15786
15787 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE = L4_MABX_B.UnitDelay3;
15788
15789 /* End of Outputs for SubSystem: '<S1065>/CAN_TYPE1_TX_M1_C1' */
15790
15791 /* Chart: '<S861>/Chart' incorporates:
15792 * Constant: '<S861>/Constant1'
15793 */
15794 if (L4_MABX_DW.temporalCounter_i1_k < 255U) {
15795 L4_MABX_DW.temporalCounter_i1_k++;
15796 }
15797
15798 /* Gateway: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15799 /* During: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15800 if (L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW == 0U) {
15801 /* Entry: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15802 L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW = 1U;
15803
15804 /* Entry Internal: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15805 /* Transition: '<S1061>:4' */
15806 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_Init_i;
15807
15808 /* Entry 'Init': '<S1061>:1' */
15809 L4_MABX_B.State = 0U;
15810 L4_MABX_B.enTPCM = false;
15811 L4_MABX_B.enTPDT = false;
15812 L4_MABX_B.TPCM_ts_Prev = L4_MABX_B.SFunction1_o2_mn;
15813 L4_MABX_B.TPDT_ts_Prev = L4_MABX_B.SFunction1_o2_e;
15814 L4_MABX_B.TPDT_count = 0U;
15815 } else {
15816 switch (L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf) {
15817 case L4_MABX_IN_CheckPacketCount:
15818 L4_MABX_B.State = 6U;
15819
15820 /* During 'CheckPacketCount': '<S1061>:11' */
15821 if (L4_MABX_B.TPDT_count <= L4_MABX_P.Constant1_Value_gm2) {
15822 /* Transition: '<S1061>:18' */
15823 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPDT;
15824 L4_MABX_DW.temporalCounter_i1_k = 0U;
15825
15826 /* Entry 'SendTPDT': '<S1061>:6' */
15827 L4_MABX_B.State = 4U;
15828 L4_MABX_B.enTPDT = true;
15829 } else {
15830 /* Transition: '<S1061>:19' */
15831 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf =
15832 L4_MABX_IN_WaitForNextPeriod;
15833 L4_MABX_DW.temporalCounter_i1_k = 0U;
15834
15835 /* Entry 'WaitForNextPeriod': '<S1061>:17' */
15836 L4_MABX_B.State = 7U;
15837 }
15838 break;
15839
15840 case L4_MABX_IN_Init_i:
15841 /* During 'Init': '<S1061>:1' */
15842 /* Transition: '<S1061>:9' */
15843 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_StartMsg;
15844
15845 /* Entry 'StartMsg': '<S1061>:30' */
15846 L4_MABX_B.State = 1U;
15847 L4_MABX_B.TPDT_count = 1U;
15848 break;
15849
15850 case L4_MABX_IN_InterframeDelay:
15851 L4_MABX_B.State = 3U;
15852
15853 /* During 'InterframeDelay': '<S1061>:7' */
15854 if (L4_MABX_DW.temporalCounter_i1_k >= 5U) {
15855 /* Transition: '<S1061>:10' */
15856 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPDT;
15857 L4_MABX_DW.temporalCounter_i1_k = 0U;
15858
15859 /* Entry 'SendTPDT': '<S1061>:6' */
15860 L4_MABX_B.State = 4U;
15861 L4_MABX_B.enTPDT = true;
15862 }
15863 break;
15864
15865 case L4_MABX_IN_InterframeDelay1:
15866 L4_MABX_B.State = 5U;
15867
15868 /* During 'InterframeDelay1': '<S1061>:12' */
15869 if (L4_MABX_DW.temporalCounter_i1_k >= 5U) {
15870 /* Transition: '<S1061>:14' */
15871 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_CheckPacketCount;
15872
15873 /* Entry 'CheckPacketCount': '<S1061>:11' */
15874 L4_MABX_B.State = 6U;
15875 i = (int32_T)(L4_MABX_B.TPDT_count + 1U);
15876 if ((uint32_T)i > 255U) {
15877 i = 255;
15878 }
15879
15880 L4_MABX_B.TPDT_count = (uint8_T)i;
15881 }
15882 break;
15883
15884 case L4_MABX_IN_SendTPCM:
15885 L4_MABX_B.State = 2U;
15886
15887 /* During 'SendTPCM': '<S1061>:5' */
15888 if (L4_MABX_DW.temporalCounter_i1_k >= 1U) {
15889 /* Transition: '<S1061>:8' */
15890 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_InterframeDelay;
15891 L4_MABX_DW.temporalCounter_i1_k = 0U;
15892
15893 /* Entry 'InterframeDelay': '<S1061>:7' */
15894 L4_MABX_B.State = 3U;
15895 L4_MABX_B.enTPCM = false;
15896 L4_MABX_B.TPCM_ts_Prev = L4_MABX_B.SFunction1_o2_mn;
15897 }
15898 break;
15899
15900 case L4_MABX_IN_SendTPDT:
15901 L4_MABX_B.State = 4U;
15902
15903 /* During 'SendTPDT': '<S1061>:6' */
15904 if (L4_MABX_DW.temporalCounter_i1_k >= 1U) {
15905 /* Transition: '<S1061>:13' */
15906 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_InterframeDelay1;
15907 L4_MABX_DW.temporalCounter_i1_k = 0U;
15908
15909 /* Entry 'InterframeDelay1': '<S1061>:12' */
15910 L4_MABX_B.State = 5U;
15911 L4_MABX_B.enTPDT = false;
15912 L4_MABX_B.TPDT_ts_Prev = L4_MABX_B.SFunction1_o2_e;
15913 }
15914 break;
15915
15916 case L4_MABX_IN_StartMsg:
15917 /* During 'StartMsg': '<S1061>:30' */
15918 /* Transition: '<S1061>:31' */
15919 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPCM;
15920 L4_MABX_DW.temporalCounter_i1_k = 0U;
15921
15922 /* Entry 'SendTPCM': '<S1061>:5' */
15923 L4_MABX_B.State = 2U;
15924 L4_MABX_B.enTPCM = true;
15925 break;
15926
15927 default:
15928 L4_MABX_B.State = 7U;
15929
15930 /* During 'WaitForNextPeriod': '<S1061>:17' */
15931 if (L4_MABX_DW.temporalCounter_i1_k >= 185U) {
15932 /* Transition: '<S1061>:20' */
15933 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_StartMsg;
15934
15935 /* Entry 'StartMsg': '<S1061>:30' */
15936 L4_MABX_B.State = 1U;
15937 L4_MABX_B.TPDT_count = 1U;
15938 }
15939 break;
15940 }
15941 }
15942
15943 /* End of Chart: '<S861>/Chart' */
15944
15945 /* RelationalOperator: '<S1089>/Operator' incorporates:
15946 * Constant: '<S1080>/Constant2'
15947 */
15948 L4_MABX_B.Operator_fh = (L4_MABX_P.Constant2_Value_gq == MABX_Mode);
15949
15950 /* S-Function (rti_commonblock): '<S1072>/S-Function1' */
15951 /* This comment workarounds a code generation problem */
15952
15953 /* write output state value to digital output channel 4 on port 1 */
15954 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH4, (UInt16)
15955 (L4_MABX_B.Operator_fh << 3));
15956
15957 /* RateTransition: '<S1080>/TmpRTBAtANDInport1' */
15958 if (L4_MABX_M->Timing.RateInteraction.TID0_3 == 1) {
15959 L4_MABX_B.TmpRTBAtANDInport1 = L4_MABX_DW.TmpRTBAtANDInport1_Buffer0;
15960 }
15961
15962 /* End of RateTransition: '<S1080>/TmpRTBAtANDInport1' */
15963
15964 /* Logic: '<S1080>/AND' */
15965 L4_MABX_B.AND_d = ((L4_MABX_B.TmpRTBAtANDInport1 != 0.0) && AutonomousEnabled);
15966
15967 /* Logic: '<S1080>/OR' */
15968 L4_MABX_B.OR = (AutonomousOutputEnabled || L4_MABX_B.AND_d);
15969
15970 /* S-Function (rti_commonblock): '<S1073>/S-Function1' */
15971 /* This comment workarounds a code generation problem */
15972
15973 /* write output state value to digital output channel 2 on port 1 */
15974 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH2, (UInt16)
15975 (L4_MABX_B.OR << 1));
15976
15977 /* S-Function (rti_commonblock): '<S1074>/S-Function1' */
15978 /* This comment workarounds a code generation problem */
15979
15980 /* write output state value to digital output channel 1 on port 1 */
15981 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH1, (UInt16)
15982 (EnableSw << 0));
15983
15984 /* RelationalOperator: '<S1088>/Operator' incorporates:
15985 * Constant: '<S1080>/Constant3'
15986 */
15987 L4_MABX_B.Operator_ba = (L4_MABX_P.Constant3_Value_fb == SupervisorMode);
15988
15989 /* S-Function (rti_commonblock): '<S1075>/S-Function1' */
15990 /* This comment workarounds a code generation problem */
15991
15992 /* write output state value to digital output channel 3 on port 1 */
15993 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH3, (UInt16)
15994 (L4_MABX_B.Operator_ba << 2));
15995
15996 /* Logic: '<S1078>/Logical Operator' */
15997 L4_MABX_B.LogicalOperator_m1 = !AutonomousOutputEnabled;
15998
15999 /* Outputs for Atomic SubSystem: '<S1078>/If_Then_Else4' */
16000
16001 /* Constant: '<S1078>/APTC_PEDAL_A_PWM_FREQ_HZ_APV' */
16002 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_m1,
16003 L4_MABX_B.Pedal_1_pwm_freq_raw_value,
16004 L4_MABX_P.APTC_PEDAL_A_PWM_FREQ_HZ_APV_Va,
16005 &L4_MABX_B.If_Then_Else4);
16006
16007 /* End of Outputs for SubSystem: '<S1078>/If_Then_Else4' */
16008
16009 /* MinMax: '<S852>/MinMax' incorporates:
16010 * Constant: '<S852>/Constant2'
16011 */
16012 DeltaTime = L4_MABX_B.If_Then_Else4.Switch;
16013 PositionFinalLimited = L4_MABX_P.Constant2_Value_o;
16014 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
16015 PositionFinalLimited = DeltaTime;
16016 }
16017
16018 L4_MABX_B.MinMax_h = PositionFinalLimited;
16019
16020 /* End of MinMax: '<S852>/MinMax' */
16021
16022 /* DataTypeConversion: '<S852>/Data Type Conversion1' */
16023 L4_MABX_B.DataTypeConversion1 = L4_MABX_B.MinMax_h;
16024
16025 /* Product: '<S852>/Divide' incorporates:
16026 * Constant: '<S852>/Constant3'
16027 */
16028 L4_MABX_B.Divide_i = L4_MABX_P.Constant3_Value_ju /
16029 L4_MABX_B.DataTypeConversion1;
16030
16031 /* DataTypeConversion: '<S852>/Data Type Conversion5' */
16032 L4_MABX_B.PWMOut_P2C1_Period = L4_MABX_B.Divide_i;
16033
16034 /* Lookup_n-D: '<S1078>/1-D Lookup Table2' */
16035 L4_MABX_B.PedalPWMA_DC_out = look1_binlcapw(L4_MABX_B.If_Then_Else_f.Switch,
16036 L4_MABX_P.uDLookupTable2_bp01Data, L4_MABX_P.uDLookupTable2_tableData, 1U);
16037
16038 /* Outputs for Atomic SubSystem: '<S1078>/If_Then_Else1' */
16039 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_m1,
16040 L4_MABX_B.Pedal_1_pwm_dc_raw_value,
16041 L4_MABX_B.PedalPWMA_DC_out, &L4_MABX_B.If_Then_Else1_g);
16042
16043 /* End of Outputs for SubSystem: '<S1078>/If_Then_Else1' */
16044
16045 /* Gain: '<S852>/Gain1' */
16046 L4_MABX_B.Gain1_g = L4_MABX_P.Gain1_Gain_ay * L4_MABX_B.If_Then_Else1_g.Switch;
16047
16048 /* DataTypeConversion: '<S852>/Data Type Conversion6' */
16049 L4_MABX_B.PWMOut_P2C1_DC = L4_MABX_B.Gain1_g;
16050
16051 /* S-Function (rti_commonblock): '<S1076>/S-Function1' */
16052 /* This comment workarounds a code generation problem */
16053
16054 /* write PWM Period and DutyCycle for output channel 1 on port 2 */
16055 dio_tp4_pwm_update(DIO_TP4_1_MODULE_ADDR , 2, 1, (real_T)
16056 L4_MABX_B.PWMOut_P2C1_Period, (real_T)
16057 L4_MABX_B.PWMOut_P2C1_DC);
16058
16059 /* Outputs for Atomic SubSystem: '<S1078>/If_Then_Else5' */
16060
16061 /* Constant: '<S1078>/APTC_PEDAL_B_PWM_FREQ_HZ_APV' */
16062 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_m1,
16063 L4_MABX_B.Pedal_2_pwm_freq_raw_value,
16064 L4_MABX_P.APTC_PEDAL_B_PWM_FREQ_HZ_APV_Va,
16065 &L4_MABX_B.If_Then_Else5);
16066
16067 /* End of Outputs for SubSystem: '<S1078>/If_Then_Else5' */
16068
16069 /* MinMax: '<S852>/MinMax1' incorporates:
16070 * Constant: '<S852>/Constant4'
16071 */
16072 DeltaTime = L4_MABX_B.If_Then_Else5.Switch;
16073 PositionFinalLimited = L4_MABX_P.Constant4_Value_mc;
16074 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
16075 PositionFinalLimited = DeltaTime;
16076 }
16077
16078 L4_MABX_B.MinMax1_n = PositionFinalLimited;
16079
16080 /* End of MinMax: '<S852>/MinMax1' */
16081
16082 /* DataTypeConversion: '<S852>/Data Type Conversion2' */
16083 L4_MABX_B.DataTypeConversion2_p = L4_MABX_B.MinMax1_n;
16084
16085 /* Product: '<S852>/Divide1' incorporates:
16086 * Constant: '<S852>/Constant1'
16087 */
16088 L4_MABX_B.Divide1 = L4_MABX_P.Constant1_Value_in /
16089 L4_MABX_B.DataTypeConversion2_p;
16090
16091 /* DataTypeConversion: '<S852>/Data Type Conversion9' */
16092 L4_MABX_B.PWMOut_P2C2_Period = L4_MABX_B.Divide1;
16093
16094 /* Lookup_n-D: '<S1078>/1-D Lookup Table3' */
16095 L4_MABX_B.PedalPWMB_DC_out = look1_binlcapw(L4_MABX_B.If_Then_Else_f.Switch,
16096 L4_MABX_P.uDLookupTable3_bp01Data, L4_MABX_P.uDLookupTable3_tableData, 1U);
16097
16098 /* Outputs for Atomic SubSystem: '<S1078>/If_Then_Else2' */
16099 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_m1,
16100 L4_MABX_B.Pedal_2_pwm_dc_raw_value,
16101 L4_MABX_B.PedalPWMB_DC_out, &L4_MABX_B.If_Then_Else2_b);
16102
16103 /* End of Outputs for SubSystem: '<S1078>/If_Then_Else2' */
16104
16105 /* Gain: '<S852>/Gain' */
16106 L4_MABX_B.Gain_i = L4_MABX_P.Gain_Gain_pv * L4_MABX_B.If_Then_Else2_b.Switch;
16107
16108 /* DataTypeConversion: '<S852>/Data Type Conversion10' */
16109 L4_MABX_B.PWMOut_P2C2_DC = L4_MABX_B.Gain_i;
16110
16111 /* S-Function (rti_commonblock): '<S1077>/S-Function1' */
16112 /* This comment workarounds a code generation problem */
16113
16114 /* write PWM Period and DutyCycle for output channel 2 on port 2 */
16115 dio_tp4_pwm_update(DIO_TP4_1_MODULE_ADDR , 2, 2, (real_T)
16116 L4_MABX_B.PWMOut_P2C2_Period, (real_T)
16117 L4_MABX_B.PWMOut_P2C2_DC);
16118
16119 /* S-Function (rti_commonblock): '<S741>/S-Function1' */
16120 /* This comment workarounds a code generation problem */
16121
16122 /* Gain: '<S418>/ShifterControlDC' */
16123 L4_MABX_B.ShiftControlDC = L4_MABX_P.ShifterControlDC_Gain *
16124 L4_MABX_B.SFunction1_o2_h;
16125
16126 /* RelationalOperator: '<S1079>/Relational Operator' incorporates:
16127 * Constant: '<S1079>/Constant'
16128 */
16129 L4_MABX_B.RelationalOperator_k = (L4_MABX_B.ShiftControlDC >=
16130 L4_MABX_P.Constant_Value_ez);
16131
16132 /* RelationalOperator: '<S1079>/Relational Operator1' incorporates:
16133 * Constant: '<S1079>/Constant1'
16134 */
16135 L4_MABX_B.RelationalOperator1_h = (L4_MABX_B.ShiftControlDC <=
16136 L4_MABX_P.Constant1_Value_oq);
16137
16138 /* Logic: '<S1079>/Logical Operator' */
16139 L4_MABX_B.LogicalOperator_d = (L4_MABX_B.RelationalOperator_k &&
16140 L4_MABX_B.RelationalOperator1_h);
16141
16142 /* RelationalOperator: '<S1085>/Compare' incorporates:
16143 * Constant: '<S1085>/Constant'
16144 */
16145 L4_MABX_B.Compare_lg = (L4_MABX_B.SPN524_TransSelectedGear ==
16146 L4_MABX_P.Constant_Value_ge);
16147
16148 /* RelationalOperator: '<S1086>/Compare' incorporates:
16149 * Constant: '<S1086>/Constant'
16150 */
16151 L4_MABX_B.Compare_fi = (L4_MABX_B.SPN523_TransCurrentGear ==
16152 L4_MABX_P.Constant_Value_m2);
16153
16154 /* Logic: '<S1079>/Logical Operator1' */
16155 L4_MABX_B.LogicalOperator1_d = (L4_MABX_B.Compare_lg && L4_MABX_B.Compare_fi);
16156
16157 /* Outputs for Atomic SubSystem: '<S1079>/If_Then_Else' */
16158
16159 /* Constant: '<S1079>/F_ALLOW_ETC2_FOR_NEUTRAL_OUTPUT_APV' incorporates:
16160 * Constant: '<S1079>/Constant2'
16161 */
16162 L4_MABX_If_Then_Else3(L4_MABX_P.F_ALLOW_ETC2_FOR_NEUTRAL_OUTPUT,
16163 L4_MABX_B.LogicalOperator1_d,
16164 L4_MABX_P.Constant2_Value_ha,
16165 &L4_MABX_B.If_Then_Else_nhu);
16166
16167 /* End of Outputs for SubSystem: '<S1079>/If_Then_Else' */
16168
16169 /* Logic: '<S1079>/Logical Operator2' */
16170 L4_MABX_B.Neutral = (L4_MABX_B.LogicalOperator_d ||
16171 L4_MABX_B.If_Then_Else_nhu.Switch);
16172
16173 /* Logic: '<S852>/Logical Operator' */
16174 L4_MABX_B.LogicalOperator_gh = !L4_MABX_B.Neutral;
16175
16176 /* Outputs for Enabled SubSystem: '<S575>/GNSSDOPs_011' incorporates:
16177 * EnablePort: '<S576>/Enable'
16178 */
16179 /* Constant: '<S443>/Constant' */
16180 if (L4_MABX_P.Constant_Value_fw > 0.0) {
16181 /* S-Function (rti_commonblock): '<S576>/S-Function1' */
16182 /* This comment workarounds a code generation problem */
16183
16184 /* dSPACE RTICAN RX Message Block: "GNSSDOPs_01" Id:435815168 */
16185 {
16186 UInt32 *CAN_Msg;
16187 static dsfloat time_old = 0.0;
16188
16189 /* Read status and timestamp info (previous message) */
16190 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].timestamp !=
16191 time_old) {
16192 /* ... save timestamp info for the calculation of the RX status
16193 during the consecutive sample hit*/
16194 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].
16195 timestamp;
16196
16197 /* ... set the processed flag to one */
16198 L4_MABX_B.SFunction1_o7_b = 1.0;
16199 L4_MABX_B.SFunction1_o8_p = (real_T)
16200 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].timestamp;
16201 L4_MABX_B.SFunction1_o9_ks = (real_T)
16202 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].deltatime;
16203 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].data;
16204
16205 /* Decode CAN message */
16206 {
16207 {
16208 rtican_Signal_t CAN_Sgn;
16209
16210 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
16211 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16212 CAN_Sgn.UnsignedSgn &= 0x000000FF;
16213 L4_MABX_B.SFunction1_o1_ny = ((real_T) CAN_Sgn.UnsignedSgn);
16214
16215 /* ...... "SetMode" (8|3, standard signal, unsigned int, little endian) */
16216 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16217 CAN_Sgn.UnsignedSgn &= 0x00000007;
16218 L4_MABX_B.SFunction1_o2_oy = ((real_T) CAN_Sgn.UnsignedSgn);
16219
16220 /* ...... "OpMode" (11|3, standard signal, unsigned int, little endian) */
16221 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16222 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
16223 CAN_Sgn.UnsignedSgn &= 0x00000007;
16224 L4_MABX_B.SFunction1_o3_f1 = ((real_T) CAN_Sgn.UnsignedSgn);
16225
16226 /* ...... "HDOP_" (16|16, standard signal, signed int, little endian) */
16227 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
16228 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
16229 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16230 if (CAN_Sgn.SignedSgn >> 15) {
16231 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16232 }
16233
16234 L4_MABX_B.SFunction1_o4_hy = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16235
16236 /* ...... "VDOP" (32|16, standard signal, signed int, little endian) */
16237 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
16238 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
16239 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16240 if (CAN_Sgn.SignedSgn >> 15) {
16241 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16242 }
16243
16244 L4_MABX_B.SFunction1_o5_i1 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16245
16246 /* ...... "TDOP" (48|16, standard signal, signed int, little endian) */
16247 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
16248 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
16249 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16250 if (CAN_Sgn.SignedSgn >> 15) {
16251 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16252 }
16253
16254 L4_MABX_B.SFunction1_o6_lq = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16255 }
16256 }
16257 } else {
16258 /* set RX status to 0 because no new message has arrived */
16259 L4_MABX_B.SFunction1_o7_b = 0.0;
16260 }
16261 }
16262 }
16263
16264 /* End of Outputs for SubSystem: '<S575>/GNSSDOPs_011' */
16265
16266 /* DataTypeConversion: '<S575>/Data Type Conversion8' */
16267 L4_MABX_B.RX_status_l = (L4_MABX_B.SFunction1_o7_b != 0.0);
16268
16269 /* Outputs for Enabled SubSystem: '<S575>/GNSSDOPs_1' incorporates:
16270 * EnablePort: '<S577>/Enable'
16271 */
16272 /* Constant: '<S443>/Constant' */
16273 if (L4_MABX_P.Constant_Value_fw > 0.0) {
16274 /* S-Function (rti_commonblock): '<S577>/S-Function1' */
16275 /* This comment workarounds a code generation problem */
16276
16277 /* dSPACE RTICAN RX Message Block: "GNSSDOPs_01" Id:435815169 */
16278 {
16279 UInt32 *CAN_Msg;
16280 static dsfloat time_old = 0.0;
16281
16282 /* Read status and timestamp info (previous message) */
16283 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].timestamp !=
16284 time_old) {
16285 /* ... save timestamp info for the calculation of the RX status
16286 during the consecutive sample hit*/
16287 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].
16288 timestamp;
16289
16290 /* ... set the processed flag to one */
16291 L4_MABX_B.SFunction1_o7_p = 1.0;
16292 L4_MABX_B.SFunction1_o8_g = (real_T)
16293 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].timestamp;
16294 L4_MABX_B.SFunction1_o9_k = (real_T)
16295 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].deltatime;
16296 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].data;
16297
16298 /* Decode CAN message */
16299 {
16300 {
16301 rtican_Signal_t CAN_Sgn;
16302
16303 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
16304 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16305 CAN_Sgn.UnsignedSgn &= 0x000000FF;
16306 L4_MABX_B.SFunction1_o1_l3y = ((real_T) CAN_Sgn.UnsignedSgn);
16307
16308 /* ...... "SetMode" (8|3, standard signal, unsigned int, little endian) */
16309 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16310 CAN_Sgn.UnsignedSgn &= 0x00000007;
16311 L4_MABX_B.SFunction1_o2_c = ((real_T) CAN_Sgn.UnsignedSgn);
16312
16313 /* ...... "OpMode" (11|3, standard signal, unsigned int, little endian) */
16314 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16315 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
16316 CAN_Sgn.UnsignedSgn &= 0x00000007;
16317 L4_MABX_B.SFunction1_o3_id = ((real_T) CAN_Sgn.UnsignedSgn);
16318
16319 /* ...... "HDOP_" (16|16, standard signal, signed int, little endian) */
16320 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
16321 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
16322 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16323 if (CAN_Sgn.SignedSgn >> 15) {
16324 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16325 }
16326
16327 L4_MABX_B.SFunction1_o4_p4 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16328
16329 /* ...... "VDOP" (32|16, standard signal, signed int, little endian) */
16330 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
16331 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
16332 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16333 if (CAN_Sgn.SignedSgn >> 15) {
16334 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16335 }
16336
16337 L4_MABX_B.SFunction1_o5_hk = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16338
16339 /* ...... "TDOP" (48|16, standard signal, signed int, little endian) */
16340 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
16341 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
16342 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16343 if (CAN_Sgn.SignedSgn >> 15) {
16344 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16345 }
16346
16347 L4_MABX_B.SFunction1_o6_af = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16348 }
16349 }
16350 } else {
16351 /* set RX status to 0 because no new message has arrived */
16352 L4_MABX_B.SFunction1_o7_p = 0.0;
16353 }
16354 }
16355 }
16356
16357 /* End of Outputs for SubSystem: '<S575>/GNSSDOPs_1' */
16358
16359 /* Switch: '<S575>/Switch' */
16360 if (L4_MABX_B.RX_status_l) {
16361 L4_MABX_B.HDOP_ = L4_MABX_B.SFunction1_o4_hy;
16362 } else {
16363 L4_MABX_B.HDOP_ = L4_MABX_B.SFunction1_o4_p4;
16364 }
16365
16366 /* Outputs for Atomic SubSystem: '<S65>/Task_20ms' */
16367 /* RateTransition: '<S397>/TmpRTBAtCheckHDOPInport1' */
16368 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
16369 L4_MABX_B.HDOP__f = L4_MABX_B.HDOP_;
16370 L4_MABX_B.FrontAxleSpeed_dv = L4_MABX_B.SFunction1_o1_loi;
16371 L4_MABX_B.FrontAxleSpeed_dvq = L4_MABX_B.SFunction1_o1_loi;
16372 L4_MABX_B.FrontAxleSpeed_dvqf = L4_MABX_B.SFunction1_o1_loi;
16373 L4_MABX_B.TmpRTBAtVehHeadingInport1 = YawRate;
16374 }
16375
16376 /* End of RateTransition: '<S397>/TmpRTBAtCheckHDOPInport1' */
16377 /* End of Outputs for SubSystem: '<S65>/Task_20ms' */
16378
16379 /* Switch: '<S399>/Switch2' incorporates:
16380 * Constant: '<S399>/No Data'
16381 * Switch: '<S399>/Switch6'
16382 * Switch: '<S399>/Switch7'
16383 * Switch: '<S399>/Switch8'
16384 */
16385 if (RTMapsOk) {
16386 /* Gain: '<S399>/m//s_to_km//h' */
16387 L4_MABX_B.ms_to_kmh = L4_MABX_P.ms_to_kmh_Gain *
16388 L4_MABX_B.Decoder_o1.CurrentVelocity;
16389 CurrentVelocity_kph = L4_MABX_B.ms_to_kmh;
16390
16391 /* Gain: '<S399>/for_logging4' */
16392 L4_MABX_B.for_logging4 = L4_MABX_P.for_logging4_Gain *
16393 L4_MABX_B.Decoder_o1.GPS_X;
16394 GPS_X = L4_MABX_B.for_logging4;
16395
16396 /* Gain: '<S399>/for_logging5' */
16397 L4_MABX_B.for_logging5 = L4_MABX_P.for_logging5_Gain *
16398 L4_MABX_B.Decoder_o1.GPS_Y;
16399 GPS_Y = L4_MABX_B.for_logging5;
16400
16401 /* Gain: '<S399>/for_logging6' */
16402 L4_MABX_B.for_logging6 = L4_MABX_P.for_logging6_Gain *
16403 L4_MABX_B.Decoder_o1.GPS_Time;
16404 GPS_Time = L4_MABX_B.for_logging6;
16405 } else {
16406 CurrentVelocity_kph = L4_MABX_P.NoData_Value;
16407 GPS_X = L4_MABX_P.NoData_Value;
16408 GPS_Y = L4_MABX_P.NoData_Value;
16409 GPS_Time = L4_MABX_P.NoData_Value;
16410 }
16411
16412 /* End of Switch: '<S399>/Switch2' */
16413
16414 /* S-Function (rti_commonblock): '<S410>/S-Function1' */
16415
16416 /* This comment workarounds a code generation problem */
16417
16418 /* End of Outputs for S-Function (rti_commonblock): '<S410>/S-Function1' */
16419
16420 /* S-Function (rti_commonblock): '<S416>/S-Function1' */
16421
16422 /* This comment workarounds a code generation problem */
16423
16424 /* End of Outputs for S-Function (rti_commonblock): '<S416>/S-Function1' */
16425
16426 /* S-Function (rti_commonblock): '<S401>/TRC Exclusion' */
16427 /* This comment workarounds a code generation problem */
16428
16429 /* S-Function (rti_commonblock): '<S402>/TRC Exclusion' */
16430 /* This comment workarounds a code generation problem */
16431
16432 /* UnitDelay: '<S3>/Unit_Delay' */
16433 L4_MABX_B.DesSteeringAngle = L4_MABX_DW.Unit_Delay_1_DSTATE;
16434 L4_MABX_B.Stanley_axleAngle2 = L4_MABX_DW.Unit_Delay_10_DSTATE;
16435 L4_MABX_B.DriversDemandEngPercentTorque = L4_MABX_DW.Unit_Delay_100_DSTATE;
16436 L4_MABX_B.SPN514_NominalFrictionPercent_g = L4_MABX_DW.Unit_Delay_101_DSTATE;
16437 L4_MABX_B.SPN2978_EstEngParasiticLosses_m = L4_MABX_DW.Unit_Delay_102_DSTATE;
16438 L4_MABX_B.SPN1760_GrossCombinationVehic_h = L4_MABX_DW.Unit_Delay_103_DSTATE;
16439 L4_MABX_B.ACCDistanceAlertSignal_o = L4_MABX_DW.Unit_Delay_104_DSTATE;
16440 L4_MABX_B.ForwardCollisionWarning_c = L4_MABX_DW.Unit_Delay_105_DSTATE;
16441 L4_MABX_B.SPN544_EngineReferenceTorque_g = L4_MABX_DW.Unit_Delay_106_DSTATE;
16442 L4_MABX_B.ROPEngCtrlActive = L4_MABX_DW.Unit_Delay_107_DSTATE;
16443 L4_MABX_B.ROPBrakeCtrlActive = L4_MABX_DW.Unit_Delay_108_DSTATE;
16444 L4_MABX_B.YCEngCtrlActive = L4_MABX_DW.Unit_Delay_109_DSTATE;
16445 L4_MABX_B.DesSteeringAngleTerm = L4_MABX_DW.Unit_Delay_11_DSTATE;
16446 L4_MABX_B.YCBrakeCtrlActive = L4_MABX_DW.Unit_Delay_110_DSTATE;
16447 L4_MABX_B.SPN1807_SteeringWheelAngle = L4_MABX_DW.Unit_Delay_111_DSTATE;
16448 L4_MABX_B.SPN1808_YawRate = L4_MABX_DW.Unit_Delay_112_DSTATE;
16449 L4_MABX_B.SPN1810_LongitudinalAcceleratio = L4_MABX_DW.Unit_Delay_113_DSTATE;
16450 L4_MABX_B.SteerWheelTurnCounter = L4_MABX_DW.Unit_Delay_114_DSTATE;
16451 L4_MABX_B.SteerWheelAngleSensorType = L4_MABX_DW.Unit_Delay_115_DSTATE;
16452 L4_MABX_B.LateralAcceleration = L4_MABX_DW.Unit_Delay_116_DSTATE;
16453 L4_MABX_B.BarometricPress = L4_MABX_DW.Unit_Delay_117_DSTATE;
16454 L4_MABX_B.AmbientAirTemp = L4_MABX_DW.Unit_Delay_118_DSTATE;
16455 L4_MABX_B.F_Truck1571_VIN_Match = L4_MABX_DW.Unit_Delay_119_DSTATE;
16456 L4_MABX_B.DesSteeringDistTerm = L4_MABX_DW.Unit_Delay_12_DSTATE;
16457 L4_MABX_B.F_Truck166_VIN_Match = L4_MABX_DW.Unit_Delay_120_DSTATE;
16458 L4_MABX_B.PitchAngleExRange_m = L4_MABX_DW.Unit_Delay_121_DSTATE;
16459 L4_MABX_B.PX2_LanePosEstPosition = L4_MABX_DW.Unit_Delay_122_DSTATE;
16460 L4_MABX_B.PX2_LanePosEstAngle = L4_MABX_DW.Unit_Delay_123_DSTATE;
16461 L4_MABX_B.PX2_LanePosEstNumPoints = L4_MABX_DW.Unit_Delay_124_DSTATE;
16462 L4_MABX_B.Latitude__c = L4_MABX_DW.Unit_Delay_125_DSTATE;
16463 L4_MABX_B.Longitude__m = L4_MABX_DW.Unit_Delay_126_DSTATE;
16464 L4_MABX_B.HDOP__o = L4_MABX_DW.Unit_Delay_127_DSTATE;
16465 L4_MABX_B.XPRControlMode_d = L4_MABX_DW.Unit_Delay_128_DSTATE;
16466 L4_MABX_B.XPRErrorState_d = L4_MABX_DW.Unit_Delay_129_DSTATE;
16467 L4_MABX_B.numLanePoints = L4_MABX_DW.Unit_Delay_13_DSTATE;
16468 L4_MABX_B.PressureP1_a = L4_MABX_DW.Unit_Delay_130_DSTATE;
16469 L4_MABX_B.PressureP4_h = L4_MABX_DW.Unit_Delay_131_DSTATE;
16470 L4_MABX_B.PressureP21_b = L4_MABX_DW.Unit_Delay_132_DSTATE;
16471 L4_MABX_B.PressureP22_e = L4_MABX_DW.Unit_Delay_133_DSTATE;
16472 L4_MABX_B.PressureP42_n = L4_MABX_DW.Unit_Delay_134_DSTATE;
16473 L4_MABX_B.ReAX_ActualHandwheelPos_p = L4_MABX_DW.Unit_Delay_135_DSTATE;
16474 L4_MABX_B.ReAX_EchoedSteerWheelPos_p = L4_MABX_DW.Unit_Delay_136_DSTATE;
16475 L4_MABX_B.SystemsOk_a = L4_MABX_DW.Unit_Delay_137_DSTATE;
16476 L4_MABX_B.SupervisorMode_l = L4_MABX_DW.Unit_Delay_138_DSTATE;
16477 L4_MABX_B.CurrentAzimuth_rad_k = L4_MABX_DW.Unit_Delay_139_DSTATE;
16478 L4_MABX_B.rawPositionError = L4_MABX_DW.Unit_Delay_14_DSTATE;
16479 L4_MABX_B.TargetAzimuth_rad_i = L4_MABX_DW.Unit_Delay_140_DSTATE;
16480 L4_MABX_B.CurrentVelocity_kph_k = L4_MABX_DW.Unit_Delay_141_DSTATE;
16481 L4_MABX_B.TargetVelocity_kph_m = L4_MABX_DW.Unit_Delay_142_DSTATE;
16482 L4_MABX_B.Curvature_a = L4_MABX_DW.Unit_Delay_143_DSTATE;
16483 L4_MABX_B.CrosstrackError_n = L4_MABX_DW.Unit_Delay_144_DSTATE;
16484 L4_MABX_B.slewedPosError = L4_MABX_DW.Unit_Delay_15_DSTATE;
16485 L4_MABX_B.previewSteeringAngle = L4_MABX_DW.Unit_Delay_16_DSTATE;
16486 L4_MABX_B.APTC_Pedal_torque_dem_value = L4_MABX_DW.Unit_Delay_17_DSTATE;
16487 L4_MABX_B.APTC_arb_pedal_low_idl_sw = L4_MABX_DW.Unit_Delay_18_DSTATE;
16488 L4_MABX_B.APTC_arb_pedal_position = L4_MABX_DW.Unit_Delay_19_DSTATE;
16489 L4_MABX_B.DesSteeringPID_Dterm = L4_MABX_DW.Unit_Delay_2_DSTATE;
16490 L4_MABX_B.signal1 = L4_MABX_DW.Unit_Delay_20_DSTATE;
16491 L4_MABX_B.PID_output = L4_MABX_DW.Unit_Delay_21_DSTATE;
16492 L4_MABX_B.PID_output_unlim = L4_MABX_DW.Unit_Delay_22_DSTATE;
16493 L4_MABX_B.PID_control_error = L4_MABX_DW.Unit_Delay_23_DSTATE;
16494 L4_MABX_B.PID_p_term = L4_MABX_DW.Unit_Delay_24_DSTATE;
16495 L4_MABX_B.PID_i_term = L4_MABX_DW.Unit_Delay_25_DSTATE;
16496 L4_MABX_B.PID_d_term = L4_MABX_DW.Unit_Delay_26_DSTATE;
16497 L4_MABX_B.PID_hold_i_term_f = L4_MABX_DW.Unit_Delay_27_DSTATE;
16498 L4_MABX_B.ThrottlePID_Y = L4_MABX_DW.Unit_Delay_28_DSTATE;
16499 L4_MABX_B.EngineSpeedTarget_Y = L4_MABX_DW.Unit_Delay_29_DSTATE;
16500 L4_MABX_B.DesSteeringPID_Iterm = L4_MABX_DW.Unit_Delay_3_DSTATE;
16501 L4_MABX_B.F_Ignition_relay_command = L4_MABX_DW.Unit_Delay_30_DSTATE;
16502 L4_MABX_B.F_Inverter_relay_command = L4_MABX_DW.Unit_Delay_31_DSTATE;
16503 L4_MABX_B.F_MABX_relay_command = L4_MABX_DW.Unit_Delay_32_DSTATE;
16504 L4_MABX_B.F_Sensor_relay_command = L4_MABX_DW.Unit_Delay_33_DSTATE;
16505 L4_MABX_B.BrkPedArbBrakeSwitch = L4_MABX_DW.Unit_Delay_34_DSTATE;
16506 L4_MABX_B.Accel_rate_ms2 = L4_MABX_DW.Unit_Delay_35_DSTATE;
16507 L4_MABX_B.BrakingControlActive = L4_MABX_DW.Unit_Delay_36_DSTATE;
16508 L4_MABX_B.F_Hold_brakes_at_zero = L4_MABX_DW.Unit_Delay_37_DSTATE;
16509 L4_MABX_B.BrakingPID_Y = L4_MABX_DW.Unit_Delay_38_DSTATE;
16510 L4_MABX_B.BrakingPID_Y_Direct_Pressure = L4_MABX_DW.Unit_Delay_39_DSTATE;
16511 L4_MABX_B.DesSteeringPID_Pterm = L4_MABX_DW.Unit_Delay_4_DSTATE;
16512 L4_MABX_B.VSPD_TARGET_KPH_APV_h = L4_MABX_DW.Unit_Delay_40_DSTATE;
16513 L4_MABX_B.Vehicle_speed_target = L4_MABX_DW.Unit_Delay_41_DSTATE;
16514 L4_MABX_B.VSPD_HYST_KPH_APV = L4_MABX_DW.Unit_Delay_42_DSTATE;
16515 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_APV = L4_MABX_DW.Unit_Delay_43_DSTATE;
16516 L4_MABX_B.ACCEL_LIM_MS2_APV = L4_MABX_DW.Unit_Delay_44_DSTATE;
16517 L4_MABX_B.AutonomousOutputEnabled_n = L4_MABX_DW.Unit_Delay_46_DSTATE;
16518 L4_MABX_B.DesSteeringPID_Y = L4_MABX_DW.Unit_Delay_5_DSTATE;
16519 L4_MABX_B.DesSteeringPID_e = L4_MABX_DW.Unit_Delay_6_DSTATE;
16520 L4_MABX_B.DeSteeringPID_Y2 = L4_MABX_DW.Unit_Delay_7_DSTATE;
16521 L4_MABX_B.CurvatureEst = L4_MABX_DW.Unit_Delay_8_DSTATE;
16522 L4_MABX_B.EngagePB_g = L4_MABX_DW.Unit_Delay_82_DSTATE;
16523 L4_MABX_B.PedalPWMPos = L4_MABX_DW.Unit_Delay_85_DSTATE;
16524 L4_MABX_B.IgnitionKeySwitch_voltage_c = L4_MABX_DW.Unit_Delay_86_DSTATE;
16525 L4_MABX_B.BrakeSwitch_a = L4_MABX_DW.Unit_Delay_87_DSTATE;
16526 L4_MABX_B.Park_brake_switch = L4_MABX_DW.Unit_Delay_88_DSTATE;
16527 L4_MABX_B.CruiseCtrlEnableSwitch = L4_MABX_DW.Unit_Delay_89_DSTATE;
16528 L4_MABX_B.Stanley_axleAngle = L4_MABX_DW.Unit_Delay_9_DSTATE;
16529 L4_MABX_B.FrontAxleSpeed = L4_MABX_DW.Unit_Delay_90_DSTATE;
16530 L4_MABX_B.FrontAxleLeftWheelSpeed = L4_MABX_DW.Unit_Delay_91_DSTATE;
16531 L4_MABX_B.FrontAxleRightWheelSpeed = L4_MABX_DW.Unit_Delay_92_DSTATE;
16532 L4_MABX_B.EBSBrakeSwitch = L4_MABX_DW.Unit_Delay_93_DSTATE;
16533 L4_MABX_B.SPN524_TransSelectedGear_m = L4_MABX_DW.Unit_Delay_94_DSTATE;
16534 L4_MABX_B.SPN523_TransCurrentGear_n = L4_MABX_DW.Unit_Delay_95_DSTATE;
16535 L4_MABX_B.SPN526_TransActualGearRatio_f = L4_MABX_DW.Unit_Delay_96_DSTATE;
16536 L4_MABX_B.ActualEngPercentTorque = L4_MABX_DW.Unit_Delay_97_DSTATE;
16537 L4_MABX_B.ActlEngPrcntTrqueHighResolution = L4_MABX_DW.Unit_Delay_98_DSTATE;
16538 L4_MABX_B.EngSpeed = L4_MABX_DW.Unit_Delay_99_DSTATE;
16539
16540 /* DataTypeConversion: '<S528>/Data Type Conversion' */
16541 L4_MABX_B.DataTypeConversion_ju = L4_MABX_B.DataTypeConversion_as[0];
16542
16543 /* DataTypeConversion: '<S528>/Data Type Conversion1' */
16544 L4_MABX_B.DataTypeConversion1_j = L4_MABX_B.DataTypeConversion_as[1];
16545
16546 /* ArithShift: '<S528>/Shift Arithmetic' */
16547 L4_MABX_B.ShiftArithmetic_k = (uint16_T)(L4_MABX_B.DataTypeConversion1_j << 8);
16548
16549 /* S-Function (sfix_bitop): '<S555>/Operator' */
16550 L4_MABX_B.Operator_n = (uint16_T)(L4_MABX_B.DataTypeConversion_ju |
16551 L4_MABX_B.ShiftArithmetic_k);
16552
16553 /* DataTypeConversion: '<S555>/DataType' */
16554 L4_MABX_B.DataType_nb = L4_MABX_B.Operator_n;
16555
16556 /* DataTypeConversion: '<S528>/Data Type Conversion2' */
16557 L4_MABX_B.DataTypeConversion2_o = L4_MABX_B.DataType_nb;
16558
16559 /* Product: '<S528>/Product' incorporates:
16560 * Constant: '<S528>/Constant'
16561 */
16562 L4_MABX_B.SPN188_EngineSpeedAtIdlePoint1 = L4_MABX_B.DataTypeConversion2_o *
16563 L4_MABX_P.Constant_Value_it;
16564
16565 /* DataTypeConversion: '<S420>/Data Type Conversion' */
16566 L4_MABX_B.DataTypeConversion_l = L4_MABX_B.SPN188_EngineSpeedAtIdlePoint1;
16567
16568 /* DataTypeConversion: '<S535>/Data Type Conversion' */
16569 L4_MABX_B.DataTypeConversion_h = L4_MABX_B.DataTypeConversion_as[2];
16570
16571 /* Sum: '<S535>/Add' incorporates:
16572 * Constant: '<S535>/Constant'
16573 */
16574 L4_MABX_B.SPN539_EnginePercentTorqueAtIdl = L4_MABX_B.DataTypeConversion_h +
16575 L4_MABX_P.Constant_Value_cm;
16576
16577 /* DataTypeConversion: '<S420>/Data Type Conversion1' */
16578 L4_MABX_B.DataTypeConversion1_i = L4_MABX_B.SPN539_EnginePercentTorqueAtIdl;
16579
16580 /* DataTypeConversion: '<S532>/Data Type Conversion' */
16581 L4_MABX_B.DataTypeConversion_hm = L4_MABX_B.DataTypeConversion_as[15];
16582
16583 /* DataTypeConversion: '<S532>/Data Type Conversion1' */
16584 L4_MABX_B.DataTypeConversion1_jk = L4_MABX_B.DataTypeConversion_as[16];
16585
16586 /* ArithShift: '<S532>/Shift Arithmetic' */
16587 L4_MABX_B.ShiftArithmetic_kv = (uint16_T)(L4_MABX_B.DataTypeConversion1_jk <<
16588 8);
16589
16590 /* S-Function (sfix_bitop): '<S557>/Operator' */
16591 L4_MABX_B.Operator_ca = (uint16_T)(L4_MABX_B.DataTypeConversion_hm |
16592 L4_MABX_B.ShiftArithmetic_kv);
16593
16594 /* DataTypeConversion: '<S557>/DataType' */
16595 L4_MABX_B.DataType_io = L4_MABX_B.Operator_ca;
16596
16597 /* DataTypeConversion: '<S532>/Data Type Conversion2' */
16598 L4_MABX_B.DataTypeConversion2_n = L4_MABX_B.DataType_io;
16599
16600 /* Product: '<S532>/Product' incorporates:
16601 * Constant: '<S532>/Constant'
16602 */
16603 L4_MABX_B.SPN532_EngineSpeedAtHighIdlePoi = L4_MABX_B.DataTypeConversion2_n *
16604 L4_MABX_P.Constant_Value_am;
16605
16606 /* DataTypeConversion: '<S420>/Data Type Conversion10' */
16607 L4_MABX_B.DataTypeConversion10 = L4_MABX_B.SPN532_EngineSpeedAtHighIdlePoi;
16608
16609 /* DataTypeConversion: '<S533>/Data Type Conversion1' */
16610 L4_MABX_B.DataTypeConversion1_dj = L4_MABX_B.DataTypeConversion_as[17];
16611
16612 /* DataTypeConversion: '<S533>/Data Type Conversion3' */
16613 L4_MABX_B.DataTypeConversion3_f = L4_MABX_B.DataTypeConversion_as[18];
16614
16615 /* ArithShift: '<S533>/Shift Arithmetic' */
16616 L4_MABX_B.ShiftArithmetic_n = (uint16_T)(L4_MABX_B.DataTypeConversion3_f << 8);
16617
16618 /* S-Function (sfix_bitop): '<S558>/Operator' */
16619 L4_MABX_B.Operator_jx = (uint16_T)(L4_MABX_B.DataTypeConversion1_dj |
16620 L4_MABX_B.ShiftArithmetic_n);
16621
16622 /* DataTypeConversion: '<S558>/DataType' */
16623 L4_MABX_B.DataType_ay = L4_MABX_B.Operator_jx;
16624
16625 /* DataTypeConversion: '<S533>/Data Type Conversion2' */
16626 L4_MABX_B.DataTypeConversion2_k = L4_MABX_B.DataType_ay;
16627
16628 /* Product: '<S533>/Product' incorporates:
16629 * Constant: '<S533>/Constant'
16630 */
16631 L4_MABX_B.SPN545_EngineGainKpOfTheEndspee = L4_MABX_B.DataTypeConversion2_k *
16632 L4_MABX_P.Constant_Value_e1;
16633
16634 /* DataTypeConversion: '<S420>/Data Type Conversion11' */
16635 L4_MABX_B.DataTypeConversion11 = L4_MABX_B.SPN545_EngineGainKpOfTheEndspee;
16636
16637 /* DataTypeConversion: '<S536>/Data Type Conversion1' */
16638 L4_MABX_B.DataTypeConversion1_f = L4_MABX_B.DataTypeConversion_as[21];
16639
16640 /* DataTypeConversion: '<S536>/Data Type Conversion3' */
16641 L4_MABX_B.DataTypeConversion3_pz = L4_MABX_B.DataTypeConversion_as[22];
16642
16643 /* ArithShift: '<S536>/Shift Arithmetic' */
16644 L4_MABX_B.ShiftArithmetic_b = (uint16_T)(L4_MABX_B.DataTypeConversion3_pz << 8);
16645
16646 /* S-Function (sfix_bitop): '<S560>/Operator' */
16647 L4_MABX_B.Operator_ma = (uint16_T)(L4_MABX_B.DataTypeConversion1_f |
16648 L4_MABX_B.ShiftArithmetic_b);
16649
16650 /* DataTypeConversion: '<S560>/DataType' */
16651 L4_MABX_B.DataType_dd = L4_MABX_B.Operator_ma;
16652
16653 /* DataTypeConversion: '<S536>/Data Type Conversion2' */
16654 L4_MABX_B.DataTypeConversion2_b = L4_MABX_B.DataType_dd;
16655
16656 /* Product: '<S536>/Product' incorporates:
16657 * Constant: '<S536>/Constant'
16658 */
16659 L4_MABX_B.SPN533_EngineMaximumMomentaryOv = L4_MABX_B.DataTypeConversion2_b *
16660 L4_MABX_P.Constant_Value_nj;
16661
16662 /* DataTypeConversion: '<S420>/Data Type Conversion13' */
16663 L4_MABX_B.DataTypeConversion13 = L4_MABX_B.SPN533_EngineMaximumMomentaryOv;
16664
16665 /* DataTypeConversion: '<S537>/Data Type Conversion2' */
16666 L4_MABX_B.DataTypeConversion2_i = L4_MABX_B.DataTypeConversion_as[23];
16667
16668 /* Product: '<S537>/Product' incorporates:
16669 * Constant: '<S537>/Constant'
16670 */
16671 L4_MABX_B.SPN534_EngineMaximumMomentaryOv = L4_MABX_B.DataTypeConversion2_i *
16672 L4_MABX_P.Constant_Value_a1;
16673
16674 /* DataTypeConversion: '<S420>/Data Type Conversion14' */
16675 L4_MABX_B.DataTypeConversion14 = L4_MABX_B.SPN534_EngineMaximumMomentaryOv;
16676
16677 /* DataTypeConversion: '<S538>/Data Type Conversion2' */
16678 L4_MABX_B.DataTypeConversion2_f = L4_MABX_B.DataTypeConversion_as[24];
16679
16680 /* Product: '<S538>/Product' incorporates:
16681 * Constant: '<S538>/Constant'
16682 */
16683 L4_MABX_B.SPN535_EngineRequestedSpeedCont = L4_MABX_B.DataTypeConversion2_f *
16684 L4_MABX_P.Constant_Value_ix;
16685
16686 /* DataTypeConversion: '<S420>/Data Type Conversion15' */
16687 L4_MABX_B.DataTypeConversion15 = L4_MABX_B.SPN535_EngineRequestedSpeedCont;
16688
16689 /* DataTypeConversion: '<S539>/Data Type Conversion2' */
16690 L4_MABX_B.DataTypeConversion2_a = L4_MABX_B.DataTypeConversion_as[25];
16691
16692 /* Product: '<S539>/Product' incorporates:
16693 * Constant: '<S539>/Constant'
16694 */
16695 L4_MABX_B.SPN536_EngineRequestedSpeedCont = L4_MABX_B.DataTypeConversion2_a *
16696 L4_MABX_P.Constant_Value_dv;
16697
16698 /* DataTypeConversion: '<S420>/Data Type Conversion16' */
16699 L4_MABX_B.DataTypeConversion16 = L4_MABX_B.SPN536_EngineRequestedSpeedCont;
16700
16701 /* DataTypeConversion: '<S540>/Data Type Conversion' */
16702 L4_MABX_B.DataTypeConversion_c = L4_MABX_B.DataTypeConversion_as[26];
16703
16704 /* Sum: '<S540>/Add' incorporates:
16705 * Constant: '<S540>/Constant'
16706 */
16707 L4_MABX_B.SPN537_EngineRequestedTorqueCon = L4_MABX_B.DataTypeConversion_c +
16708 L4_MABX_P.Constant_Value_c0;
16709
16710 /* DataTypeConversion: '<S420>/Data Type Conversion17' */
16711 L4_MABX_B.DataTypeConversion17 = L4_MABX_B.SPN537_EngineRequestedTorqueCon;
16712
16713 /* DataTypeConversion: '<S541>/Data Type Conversion' */
16714 L4_MABX_B.DataTypeConversion_m = L4_MABX_B.DataTypeConversion_as[27];
16715
16716 /* Sum: '<S541>/Add' incorporates:
16717 * Constant: '<S541>/Constant'
16718 */
16719 L4_MABX_B.SPN538_EngineRequestedTorqueCon = L4_MABX_B.DataTypeConversion_m +
16720 L4_MABX_P.Constant_Value_bc;
16721
16722 /* DataTypeConversion: '<S420>/Data Type Conversion18' */
16723 L4_MABX_B.DataTypeConversion18 = L4_MABX_B.SPN538_EngineRequestedTorqueCon;
16724
16725 /* DataTypeConversion: '<S542>/Data Type Conversion1' */
16726 L4_MABX_B.DataTypeConversion1_az = L4_MABX_B.DataTypeConversion_as[28];
16727
16728 /* DataTypeConversion: '<S542>/Data Type Conversion3' */
16729 L4_MABX_B.DataTypeConversion3_h0 = L4_MABX_B.DataTypeConversion_as[29];
16730
16731 /* ArithShift: '<S542>/Shift Arithmetic' */
16732 L4_MABX_B.ShiftArithmetic_d = (uint16_T)(L4_MABX_B.DataTypeConversion3_h0 << 8);
16733
16734 /* S-Function (sfix_bitop): '<S561>/Operator' */
16735 L4_MABX_B.Operator_n5 = (uint16_T)(L4_MABX_B.DataTypeConversion1_az |
16736 L4_MABX_B.ShiftArithmetic_d);
16737
16738 /* DataTypeConversion: '<S561>/DataType' */
16739 L4_MABX_B.DataType_ci = L4_MABX_B.Operator_n5;
16740
16741 /* DataTypeConversion: '<S542>/Data Type Conversion2' */
16742 L4_MABX_B.DataTypeConversion2_a1 = L4_MABX_B.DataType_ci;
16743
16744 /* Product: '<S542>/Product' incorporates:
16745 * Constant: '<S542>/Constant'
16746 */
16747 L4_MABX_B.SPN1712_EngRequestedSpeedCtrlRn = L4_MABX_B.DataTypeConversion2_a1 *
16748 L4_MABX_P.Constant_Value_gm;
16749
16750 /* DataTypeConversion: '<S420>/Data Type Conversion19' */
16751 L4_MABX_B.DataTypeConversion19 = L4_MABX_B.SPN1712_EngRequestedSpeedCtrlRn;
16752
16753 /* DataTypeConversion: '<S550>/Data Type Conversion' */
16754 L4_MABX_B.DataTypeConversion_n2 = L4_MABX_B.DataTypeConversion_as[3];
16755
16756 /* DataTypeConversion: '<S550>/Data Type Conversion1' */
16757 L4_MABX_B.DataTypeConversion1_aq = L4_MABX_B.DataTypeConversion_as[4];
16758
16759 /* ArithShift: '<S550>/Shift Arithmetic' */
16760 L4_MABX_B.ShiftArithmetic_m = (uint16_T)(L4_MABX_B.DataTypeConversion1_aq << 8);
16761
16762 /* S-Function (sfix_bitop): '<S564>/Operator' */
16763 L4_MABX_B.Operator_ob = (uint16_T)(L4_MABX_B.DataTypeConversion_n2 |
16764 L4_MABX_B.ShiftArithmetic_m);
16765
16766 /* DataTypeConversion: '<S564>/DataType' */
16767 L4_MABX_B.DataType_ia = L4_MABX_B.Operator_ob;
16768
16769 /* DataTypeConversion: '<S550>/Data Type Conversion2' */
16770 L4_MABX_B.DataTypeConversion2_ow = L4_MABX_B.DataType_ia;
16771
16772 /* Product: '<S550>/Product' incorporates:
16773 * Constant: '<S550>/Constant'
16774 */
16775 L4_MABX_B.SPN528_EngineSpeedAtPoint2 = L4_MABX_B.DataTypeConversion2_ow *
16776 L4_MABX_P.Constant_Value_f2;
16777
16778 /* DataTypeConversion: '<S420>/Data Type Conversion2' */
16779 L4_MABX_B.DataTypeConversion2_e = L4_MABX_B.SPN528_EngineSpeedAtPoint2;
16780
16781 /* DataTypeConversion: '<S543>/Data Type Conversion1' */
16782 L4_MABX_B.DataTypeConversion1_hm = L4_MABX_B.DataTypeConversion_as[30];
16783
16784 /* DataTypeConversion: '<S543>/Data Type Conversion3' */
16785 L4_MABX_B.DataTypeConversion3_hv = L4_MABX_B.DataTypeConversion_as[31];
16786
16787 /* ArithShift: '<S543>/Shift Arithmetic' */
16788 L4_MABX_B.ShiftArithmetic_nx = (uint16_T)(L4_MABX_B.DataTypeConversion3_hv <<
16789 8);
16790
16791 /* S-Function (sfix_bitop): '<S562>/Operator' */
16792 L4_MABX_B.Operator_aj = (uint16_T)(L4_MABX_B.DataTypeConversion1_hm |
16793 L4_MABX_B.ShiftArithmetic_nx);
16794
16795 /* DataTypeConversion: '<S562>/DataType' */
16796 L4_MABX_B.DataType_do = L4_MABX_B.Operator_aj;
16797
16798 /* DataTypeConversion: '<S543>/Data Type Conversion2' */
16799 L4_MABX_B.DataTypeConversion2_j = L4_MABX_B.DataType_do;
16800
16801 /* Product: '<S543>/Product' incorporates:
16802 * Constant: '<S543>/Constant'
16803 */
16804 L4_MABX_B.SPN1794_EngineMomentOfInertia = L4_MABX_B.DataTypeConversion2_j *
16805 L4_MABX_P.Constant_Value_mr;
16806
16807 /* DataTypeConversion: '<S420>/Data Type Conversion20' */
16808 L4_MABX_B.DataTypeConversion20 = L4_MABX_B.SPN1794_EngineMomentOfInertia;
16809
16810 /* DataTypeConversion: '<S544>/Data Type Conversion' */
16811 L4_MABX_B.DataTypeConversion_nq = L4_MABX_B.DataTypeConversion_as[32];
16812
16813 /* DataTypeConversion: '<S544>/Data Type Conversion1' */
16814 L4_MABX_B.DataTypeConversion1_gl = L4_MABX_B.DataTypeConversion_as[33];
16815
16816 /* ArithShift: '<S544>/Shift Arithmetic' */
16817 L4_MABX_B.ShiftArithmetic_k1 = (uint16_T)(L4_MABX_B.DataTypeConversion1_gl <<
16818 8);
16819
16820 /* S-Function (sfix_bitop): '<S563>/Operator' */
16821 L4_MABX_B.Operator_k = (uint16_T)(L4_MABX_B.DataTypeConversion_nq |
16822 L4_MABX_B.ShiftArithmetic_k1);
16823
16824 /* DataTypeConversion: '<S563>/DataType' */
16825 L4_MABX_B.DataType_gu = L4_MABX_B.Operator_k;
16826
16827 /* DataTypeConversion: '<S544>/Data Type Conversion2' */
16828 L4_MABX_B.SPN1846_EngineDefaultTorqueLimi = L4_MABX_B.DataType_gu;
16829
16830 /* DataTypeConversion: '<S420>/Data Type Conversion21' */
16831 L4_MABX_B.DataTypeConversion21 = L4_MABX_B.SPN1846_EngineDefaultTorqueLimi;
16832
16833 /* DataTypeConversion: '<S420>/Data Type Conversion22' */
16834 L4_MABX_B.DataTypeConversion22 = L4_MABX_B.DataTypeConversion_as[34];
16835
16836 /* DataTypeConversion: '<S420>/Data Type Conversion23' */
16837 L4_MABX_B.DataTypeConversion23 = L4_MABX_B.DataTypeConversion_as[35];
16838
16839 /* DataTypeConversion: '<S420>/Data Type Conversion24' */
16840 L4_MABX_B.DataTypeConversion24 = L4_MABX_B.DataTypeConversion_as[36];
16841
16842 /* DataTypeConversion: '<S420>/Data Type Conversion25' */
16843 L4_MABX_B.DataTypeConversion25 = L4_MABX_B.DataTypeConversion_as[37];
16844
16845 /* DataTypeConversion: '<S420>/Data Type Conversion26' */
16846 L4_MABX_B.DataTypeConversion26 = L4_MABX_B.DataTypeConversion_as[38];
16847
16848 /* DataTypeConversion: '<S551>/Data Type Conversion' */
16849 L4_MABX_B.DataTypeConversion_b = L4_MABX_B.DataTypeConversion_as[5];
16850
16851 /* Sum: '<S551>/Add' incorporates:
16852 * Constant: '<S551>/Constant'
16853 */
16854 L4_MABX_B.SPN540_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_b +
16855 L4_MABX_P.Constant_Value_lv;
16856
16857 /* DataTypeConversion: '<S420>/Data Type Conversion3' */
16858 L4_MABX_B.DataTypeConversion3 = L4_MABX_B.SPN540_EnginePercentTorqueAtPoi;
16859
16860 /* DataTypeConversion: '<S552>/Data Type Conversion' */
16861 L4_MABX_B.DataTypeConversion_ev = L4_MABX_B.DataTypeConversion_as[6];
16862
16863 /* DataTypeConversion: '<S552>/Data Type Conversion1' */
16864 L4_MABX_B.DataTypeConversion1_kb = L4_MABX_B.DataTypeConversion_as[7];
16865
16866 /* ArithShift: '<S552>/Shift Arithmetic' */
16867 L4_MABX_B.ShiftArithmetic_mz = (uint16_T)(L4_MABX_B.DataTypeConversion1_kb <<
16868 8);
16869
16870 /* S-Function (sfix_bitop): '<S565>/Operator' */
16871 L4_MABX_B.Operator_nq = (uint16_T)(L4_MABX_B.DataTypeConversion_ev |
16872 L4_MABX_B.ShiftArithmetic_mz);
16873
16874 /* DataTypeConversion: '<S565>/DataType' */
16875 L4_MABX_B.DataType_h = L4_MABX_B.Operator_nq;
16876
16877 /* DataTypeConversion: '<S552>/Data Type Conversion2' */
16878 L4_MABX_B.DataTypeConversion2_m = L4_MABX_B.DataType_h;
16879
16880 /* Product: '<S552>/Product' incorporates:
16881 * Constant: '<S552>/Constant'
16882 */
16883 L4_MABX_B.SPN529_EngineSpeedAtPoint3 = L4_MABX_B.DataTypeConversion2_m *
16884 L4_MABX_P.Constant_Value_hz;
16885
16886 /* DataTypeConversion: '<S420>/Data Type Conversion4' */
16887 L4_MABX_B.DataTypeConversion4 = L4_MABX_B.SPN529_EngineSpeedAtPoint3;
16888
16889 /* DataTypeConversion: '<S553>/Data Type Conversion' */
16890 L4_MABX_B.DataTypeConversion_j = L4_MABX_B.DataTypeConversion_as[8];
16891
16892 /* Sum: '<S553>/Add' incorporates:
16893 * Constant: '<S553>/Constant'
16894 */
16895 L4_MABX_B.SPN541_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_j +
16896 L4_MABX_P.Constant_Value_br;
16897
16898 /* DataTypeConversion: '<S420>/Data Type Conversion5' */
16899 L4_MABX_B.DataTypeConversion5 = L4_MABX_B.SPN541_EnginePercentTorqueAtPoi;
16900
16901 /* DataTypeConversion: '<S554>/Data Type Conversion' */
16902 L4_MABX_B.DataTypeConversion_nn = L4_MABX_B.DataTypeConversion_as[9];
16903
16904 /* DataTypeConversion: '<S554>/Data Type Conversion1' */
16905 L4_MABX_B.DataTypeConversion1_i0 = L4_MABX_B.DataTypeConversion_as[10];
16906
16907 /* ArithShift: '<S554>/Shift Arithmetic' */
16908 L4_MABX_B.ShiftArithmetic_a = (uint16_T)(L4_MABX_B.DataTypeConversion1_i0 << 8);
16909
16910 /* S-Function (sfix_bitop): '<S566>/Operator' */
16911 L4_MABX_B.Operator_mo = (uint16_T)(L4_MABX_B.DataTypeConversion_nn |
16912 L4_MABX_B.ShiftArithmetic_a);
16913
16914 /* DataTypeConversion: '<S566>/DataType' */
16915 L4_MABX_B.DataType_hz = L4_MABX_B.Operator_mo;
16916
16917 /* DataTypeConversion: '<S554>/Data Type Conversion2' */
16918 L4_MABX_B.DataTypeConversion2_pl = L4_MABX_B.DataType_hz;
16919
16920 /* Product: '<S554>/Product' incorporates:
16921 * Constant: '<S554>/Constant'
16922 */
16923 L4_MABX_B.SPN530_EngineSpeedAtPoint4 = L4_MABX_B.DataTypeConversion2_pl *
16924 L4_MABX_P.Constant_Value_b4;
16925
16926 /* DataTypeConversion: '<S420>/Data Type Conversion6' */
16927 L4_MABX_B.DataTypeConversion6 = L4_MABX_B.SPN530_EngineSpeedAtPoint4;
16928
16929 /* DataTypeConversion: '<S529>/Data Type Conversion' */
16930 L4_MABX_B.DataTypeConversion_o = L4_MABX_B.DataTypeConversion_as[11];
16931
16932 /* Sum: '<S529>/Add' incorporates:
16933 * Constant: '<S529>/Constant'
16934 */
16935 L4_MABX_B.SPN542_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_o +
16936 L4_MABX_P.Constant_Value_ht;
16937
16938 /* DataTypeConversion: '<S420>/Data Type Conversion7' */
16939 L4_MABX_B.DataTypeConversion7 = L4_MABX_B.SPN542_EnginePercentTorqueAtPoi;
16940
16941 /* DataTypeConversion: '<S530>/Data Type Conversion' */
16942 L4_MABX_B.DataTypeConversion_os = L4_MABX_B.DataTypeConversion_as[12];
16943
16944 /* DataTypeConversion: '<S530>/Data Type Conversion1' */
16945 L4_MABX_B.DataTypeConversion1_nw = L4_MABX_B.DataTypeConversion_as[13];
16946
16947 /* ArithShift: '<S530>/Shift Arithmetic' */
16948 L4_MABX_B.ShiftArithmetic_ns = (uint16_T)(L4_MABX_B.DataTypeConversion1_nw <<
16949 8);
16950
16951 /* S-Function (sfix_bitop): '<S556>/Operator' */
16952 L4_MABX_B.Operator_iv = (uint16_T)(L4_MABX_B.DataTypeConversion_os |
16953 L4_MABX_B.ShiftArithmetic_ns);
16954
16955 /* DataTypeConversion: '<S556>/DataType' */
16956 L4_MABX_B.DataType_gh = L4_MABX_B.Operator_iv;
16957
16958 /* DataTypeConversion: '<S530>/Data Type Conversion2' */
16959 L4_MABX_B.DataTypeConversion2_jt = L4_MABX_B.DataType_gh;
16960
16961 /* Product: '<S530>/Product' incorporates:
16962 * Constant: '<S530>/Constant'
16963 */
16964 L4_MABX_B.SPN531_EngineSpeedAtPoint5 = L4_MABX_B.DataTypeConversion2_jt *
16965 L4_MABX_P.Constant_Value_gh;
16966
16967 /* DataTypeConversion: '<S420>/Data Type Conversion8' */
16968 L4_MABX_B.DataTypeConversion8 = L4_MABX_B.SPN531_EngineSpeedAtPoint5;
16969
16970 /* DataTypeConversion: '<S531>/Data Type Conversion' */
16971 L4_MABX_B.DataTypeConversion_i = L4_MABX_B.DataTypeConversion_as[14];
16972
16973 /* Sum: '<S531>/Add' incorporates:
16974 * Constant: '<S531>/Constant'
16975 */
16976 L4_MABX_B.SPN543_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_i +
16977 L4_MABX_P.Constant_Value_ej;
16978
16979 /* DataTypeConversion: '<S420>/Data Type Conversion9' */
16980 L4_MABX_B.DataTypeConversion9 = L4_MABX_B.SPN543_EnginePercentTorqueAtPoi;
16981
16982 /* DataTypeConversion: '<S477>/Data Type Conversion8' */
16983 L4_MABX_B.RX_status_h = (L4_MABX_B.SFunction1_o9_dj != 0.0);
16984
16985 /* MultiPortSwitch: '<S423>/Multiport_Switch' */
16986 L4_MABX_B.RX_status_nk = L4_MABX_B.RX_status_h;
16987
16988 /* DataTypeConversion: '<S477>/Data Type Conversion9' */
16989 L4_MABX_B.RX_time = L4_MABX_B.SFunction1_o10_cs;
16990
16991 /* MultiPortSwitch: '<S423>/Multiport_Switch' */
16992 L4_MABX_B.RX_time_j = L4_MABX_B.RX_time;
16993
16994 /* DataTypeConversion: '<S477>/Data Type Conversion10' */
16995 L4_MABX_B.RX_delta_time = L4_MABX_B.SFunction1_o11_mb;
16996
16997 /* MultiPortSwitch: '<S423>/Multiport_Switch' */
16998 L4_MABX_B.RX_delta_time_g = L4_MABX_B.RX_delta_time;
16999
17000 /* RelationalOperator: '<S481>/Operator' incorporates:
17001 * Constant: '<S423>/Constant'
17002 * Constant: '<S478>/Constant1'
17003 */
17004 L4_MABX_B.Operator_np = (L4_MABX_P.Constant_Value_cu ==
17005 L4_MABX_P.Constant1_Value_ez);
17006
17007 /* RelationalOperator: '<S482>/Operator' incorporates:
17008 * Constant: '<S423>/Constant'
17009 * Constant: '<S478>/Constant2'
17010 */
17011 L4_MABX_B.Operator_hz = (L4_MABX_P.Constant_Value_cu ==
17012 L4_MABX_P.Constant2_Value_nb);
17013
17014 /* RelationalOperator: '<S483>/Operator' incorporates:
17015 * Constant: '<S423>/Constant'
17016 * Constant: '<S478>/Constant3'
17017 */
17018 L4_MABX_B.Operator_og = (L4_MABX_P.Constant_Value_cu ==
17019 L4_MABX_P.Constant3_Value_c);
17020
17021 /* RelationalOperator: '<S484>/Operator' incorporates:
17022 * Constant: '<S423>/Constant'
17023 * Constant: '<S478>/Constant4'
17024 */
17025 L4_MABX_B.Operator_dj = (L4_MABX_P.Constant_Value_cu ==
17026 L4_MABX_P.Constant4_Value_l);
17027
17028 /* RelationalOperator: '<S485>/Operator' incorporates:
17029 * Constant: '<S423>/Constant'
17030 * Constant: '<S478>/Constant5'
17031 */
17032 L4_MABX_B.Operator_bm = (L4_MABX_P.Constant_Value_cu ==
17033 L4_MABX_P.Constant5_Value_pt);
17034
17035 /* DataTypeConversion: '<S486>/Data Type Conversion9' */
17036 L4_MABX_B.RX_time_g = L4_MABX_B.SFunction1_o10_atw;
17037
17038 /* MultiPortSwitch: '<S424>/Multiport_Switch' */
17039 L4_MABX_B.RX_time_c = L4_MABX_B.RX_time_g;
17040
17041 /* DataTypeConversion: '<S486>/Data Type Conversion10' */
17042 L4_MABX_B.RX_delta_time_p = L4_MABX_B.SFunction1_o11_da;
17043
17044 /* MultiPortSwitch: '<S424>/Multiport_Switch' */
17045 L4_MABX_B.RX_delta_time_m = L4_MABX_B.RX_delta_time_p;
17046
17047 /* RelationalOperator: '<S490>/Operator' incorporates:
17048 * Constant: '<S424>/Constant'
17049 * Constant: '<S487>/Constant1'
17050 */
17051 L4_MABX_B.Operator_cf = (L4_MABX_P.Constant_Value_oy ==
17052 L4_MABX_P.Constant1_Value_js);
17053
17054 /* RelationalOperator: '<S491>/Operator' incorporates:
17055 * Constant: '<S424>/Constant'
17056 * Constant: '<S487>/Constant2'
17057 */
17058 L4_MABX_B.Operator_dh = (L4_MABX_P.Constant_Value_oy ==
17059 L4_MABX_P.Constant2_Value_k);
17060
17061 /* RelationalOperator: '<S492>/Operator' incorporates:
17062 * Constant: '<S424>/Constant'
17063 * Constant: '<S487>/Constant3'
17064 */
17065 L4_MABX_B.Operator_mf = (L4_MABX_P.Constant_Value_oy ==
17066 L4_MABX_P.Constant3_Value_i);
17067
17068 /* RelationalOperator: '<S493>/Operator' incorporates:
17069 * Constant: '<S424>/Constant'
17070 * Constant: '<S487>/Constant4'
17071 */
17072 L4_MABX_B.Operator_mb = (L4_MABX_P.Constant_Value_oy ==
17073 L4_MABX_P.Constant4_Value_lv);
17074
17075 /* RelationalOperator: '<S494>/Operator' incorporates:
17076 * Constant: '<S424>/Constant'
17077 * Constant: '<S487>/Constant5'
17078 */
17079 L4_MABX_B.Operator_pg = (L4_MABX_P.Constant_Value_oy ==
17080 L4_MABX_P.Constant5_Value_li);
17081
17082 /* DataTypeConversion: '<S495>/Data Type Conversion1' */
17083 L4_MABX_B.SpeedOfForwardVehicle = L4_MABX_B.SFunction1_o1_po;
17084
17085 /* DataTypeConversion: '<S495>/Data Type Conversion10' */
17086 L4_MABX_B.RX_delta_time_pf = L4_MABX_B.SFunction1_o13_h;
17087
17088 /* DataTypeConversion: '<S495>/Data Type Conversion11' */
17089 L4_MABX_B.ACCSystemShutoffWarning = L4_MABX_B.SFunction1_o8_c5;
17090
17091 /* DataTypeConversion: '<S495>/Data Type Conversion2' */
17092 L4_MABX_B.DistanceToForwardVehicle = L4_MABX_B.SFunction1_o2_nw;
17093
17094 /* DataTypeConversion: '<S495>/Data Type Conversion3' */
17095 L4_MABX_B.AdaptiveCruiseCtrlSetSpeed = L4_MABX_B.SFunction1_o3_hn;
17096
17097 /* DataTypeConversion: '<S495>/Data Type Conversion4' */
17098 L4_MABX_B.AdaptiveCruiseCtrlMode = L4_MABX_B.SFunction1_o4_p4l;
17099
17100 /* DataTypeConversion: '<S495>/Data Type Conversion5' */
17101 L4_MABX_B.AdptveCruiseCtrlSetDistanceMode = L4_MABX_B.SFunction1_o5_mp;
17102
17103 /* DataTypeConversion: '<S495>/Data Type Conversion6' */
17104 L4_MABX_B.RoadCurvature = L4_MABX_B.SFunction1_o6_iy;
17105
17106 /* DataTypeConversion: '<S495>/Data Type Conversion7' */
17107 L4_MABX_B.ACCTargetDetected = L4_MABX_B.SFunction1_o7_oe;
17108
17109 /* DataTypeConversion: '<S495>/Data Type Conversion8' */
17110 L4_MABX_B.RX_status_g = (L4_MABX_B.SFunction1_o11_ex != 0.0);
17111
17112 /* DataTypeConversion: '<S495>/Data Type Conversion9' */
17113 L4_MABX_B.RX_time_e = L4_MABX_B.SFunction1_o12_l;
17114
17115 /* Outputs for Enabled SubSystem: '<S497>/AEBS1_A0' incorporates:
17116 * EnablePort: '<S498>/Enable'
17117 */
17118 /* Constant: '<S426>/Constant' */
17119 if (L4_MABX_P.Constant_Value_ku) {
17120 /* S-Function (rti_commonblock): '<S498>/S-Function1' */
17121 /* This comment workarounds a code generation problem */
17122
17123 /* dSPACE RTICAN RX Message Block: "AEBS1_A0" Id:217067306 */
17124 {
17125 UInt32 *CAN_Msg;
17126 static dsfloat time_old = 0.0;
17127
17128 /* Read status and timestamp info (previous message) */
17129 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].timestamp !=
17130 time_old) {
17131 /* ... save timestamp info for the calculation of the RX status
17132 during the consecutive sample hit*/
17133 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].
17134 timestamp;
17135
17136 /* ... set the processed flag to one */
17137 L4_MABX_B.SFunction1_o6_cy = 1.0;
17138 L4_MABX_B.SFunction1_o7_ba = (real_T)
17139 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].timestamp;
17140 L4_MABX_B.SFunction1_o8_a = (real_T)
17141 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].deltatime;
17142 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].data;
17143
17144 /* Decode CAN message */
17145 {
17146 {
17147 rtican_Signal_t CAN_Sgn;
17148
17149 /* ...... "AdvEmergencyBrkSysState" (0|4, standard signal, unsigned int, little endian) */
17150 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17151 CAN_Sgn.UnsignedSgn &= 0x0000000F;
17152 L4_MABX_B.SFunction1_o1_ks = ((real_T) CAN_Sgn.UnsignedSgn);
17153
17154 /* ...... "CollisionWarningLevel" (4|4, standard signal, unsigned int, little endian) */
17155 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17156 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17157 CAN_Sgn.UnsignedSgn &= 0x0000000F;
17158 L4_MABX_B.SFunction1_o2_d0 = ((real_T) CAN_Sgn.UnsignedSgn);
17159
17160 /* ...... "RelObjctDetForAdvEmergBrakingSys" (8|3, standard signal, unsigned int, little endian) */
17161 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
17162 CAN_Sgn.UnsignedSgn &= 0x00000007;
17163 L4_MABX_B.SFunction1_o3_ci = ((real_T) CAN_Sgn.UnsignedSgn);
17164
17165 /* ...... "BendOffProbabOfRelevantObject" (12|3, standard signal, unsigned int, little endian) */
17166 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
17167 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17168 CAN_Sgn.UnsignedSgn &= 0x00000007;
17169 L4_MABX_B.SFunction1_o4_amf = ((real_T) CAN_Sgn.UnsignedSgn);
17170
17171 /* ...... "TimeToCollisionWithRelevantObj" (16|8, standard signal, unsigned int, little endian) */
17172 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17173 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17174 L4_MABX_B.SFunction1_o5_js = ((real_T) CAN_Sgn.UnsignedSgn);
17175 }
17176 }
17177 } else {
17178 /* set RX status to 0 because no new message has arrived */
17179 L4_MABX_B.SFunction1_o6_cy = 0.0;
17180 }
17181 }
17182 }
17183
17184 /* End of Constant: '<S426>/Constant' */
17185 /* End of Outputs for SubSystem: '<S497>/AEBS1_A0' */
17186
17187 /* DataTypeConversion: '<S497>/Data Type Conversion10' */
17188 L4_MABX_B.RX_delta_time_k = L4_MABX_B.SFunction1_o8_a;
17189
17190 /* DataTypeConversion: '<S497>/Data Type Conversion8' */
17191 L4_MABX_B.RX_status_hl = (L4_MABX_B.SFunction1_o6_cy != 0.0);
17192
17193 /* DataTypeConversion: '<S497>/Data Type Conversion9' */
17194 L4_MABX_B.RX_time_h = L4_MABX_B.SFunction1_o7_ba;
17195
17196 /* DataTypeConversion: '<S499>/Data Type Conversion10' */
17197 L4_MABX_B.RX_delta_time_gd = L4_MABX_B.SFunction1_o11_m;
17198
17199 /* DataTypeConversion: '<S499>/Data Type Conversion8' */
17200 L4_MABX_B.RX_status_gr = (L4_MABX_B.SFunction1_o9_b != 0.0);
17201
17202 /* DataTypeConversion: '<S499>/Data Type Conversion9' */
17203 L4_MABX_B.RX_time_i = L4_MABX_B.SFunction1_o10_o;
17204
17205 /* DataTypeConversion: '<S501>/Data Type Conversion10' */
17206 L4_MABX_B.RX_delta_time_pk = L4_MABX_B.SFunction1_o8_n5;
17207
17208 /* DataTypeConversion: '<S501>/Data Type Conversion8' */
17209 L4_MABX_B.RX_status_iy = (L4_MABX_B.SFunction1_o6_it != 0.0);
17210
17211 /* DataTypeConversion: '<S501>/Data Type Conversion9' */
17212 L4_MABX_B.RX_time_l = L4_MABX_B.SFunction1_o7_lsr;
17213
17214 /* Outputs for Enabled SubSystem: '<S503>/B2' incorporates:
17215 * EnablePort: '<S504>/Enable'
17216 */
17217 /* Constant: '<S429>/Constant' */
17218 if (L4_MABX_P.Constant_Value_pd > 0.0) {
17219 /* S-Function (rti_commonblock): '<S504>/S-Function1' */
17220 /* This comment workarounds a code generation problem */
17221
17222 /* dSPACE RTICAN RX Message Block: "B2" Id:418451505 */
17223 {
17224 UInt32 *CAN_Msg;
17225 static dsfloat time_old = 0.0;
17226
17227 /* Read status and timestamp info (previous message) */
17228 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].timestamp !=
17229 time_old) {
17230 /* ... save timestamp info for the calculation of the RX status
17231 during the consecutive sample hit*/
17232 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].
17233 timestamp;
17234
17235 /* ... set the processed flag to one */
17236 L4_MABX_B.SFunction1_o3_l0 = 1.0;
17237 L4_MABX_B.SFunction1_o4_gs = (real_T)
17238 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].timestamp;
17239 L4_MABX_B.SFunction1_o5_om = (real_T)
17240 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].deltatime;
17241 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].data;
17242
17243 /* Decode CAN message */
17244 {
17245 {
17246 rtican_Signal_t CAN_Sgn;
17247
17248 /* ...... "BrakeAppPressDemanded" (0|16, standard signal, unsigned int, little endian) */
17249 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17250 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
17251 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17252 L4_MABX_B.SFunction1_o1_o5 = 0.1 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17253
17254 /* ...... "BrakeSwitch2" (16|2, standard signal, unsigned int, little endian) */
17255 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17256 CAN_Sgn.UnsignedSgn &= 0x00000003;
17257 L4_MABX_B.SFunction1_o2_bp = ((real_T) CAN_Sgn.UnsignedSgn);
17258 }
17259 }
17260 } else {
17261 /* set RX status to 0 because no new message has arrived */
17262 L4_MABX_B.SFunction1_o3_l0 = 0.0;
17263 }
17264 }
17265 }
17266
17267 /* End of Constant: '<S429>/Constant' */
17268 /* End of Outputs for SubSystem: '<S503>/B2' */
17269
17270 /* DataTypeConversion: '<S503>/Data Type Conversion10' */
17271 L4_MABX_B.RX_delta_time_a = L4_MABX_B.SFunction1_o5_om;
17272
17273 /* DataTypeConversion: '<S503>/Data Type Conversion8' */
17274 L4_MABX_B.RX_status_f = (L4_MABX_B.SFunction1_o3_l0 != 0.0);
17275
17276 /* DataTypeConversion: '<S503>/Data Type Conversion9' */
17277 L4_MABX_B.RX_time_ih = L4_MABX_B.SFunction1_o4_gs;
17278
17279 /* Outputs for Enabled SubSystem: '<S505>/Tracks' incorporates:
17280 * EnablePort: '<S506>/Enable'
17281 */
17282 /* Constant: '<S430>/Constant' */
17283 if (L4_MABX_P.Constant_Value_esw) {
17284 /* S-Function (rti_commonblock): '<S506>/S-Function1' */
17285 /* This comment workarounds a code generation problem */
17286
17287 /* dSPACE RTICAN RX Message Block: "Tracks" Id:1635 */
17288 {
17289 UInt32 *CAN_Msg;
17290 static dsfloat time_old = 0.0;
17291
17292 /* Read status and timestamp info (previous message) */
17293 if (can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp !=
17294 time_old) {
17295 /* ... save timestamp info for the calculation of the RX status
17296 during the consecutive sample hit*/
17297 time_old = can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp;
17298
17299 /* ... set the processed flag to one */
17300 L4_MABX_B.SFunction1_o72 = 1.0;
17301 L4_MABX_B.SFunction1_o73 = (real_T)
17302 can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp;
17303 L4_MABX_B.SFunction1_o74 = (real_T)
17304 can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].deltatime;
17305 CAN_Msg = can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].data;
17306
17307 /* Decode CAN message */
17308 {
17309 {
17310 rtican_Signal_t CAN_Sgn;
17311 UInt32 modeSignal;
17312
17313 /* ...... "track_multiplexor" (56|8, mode signal, unsigned int, motorola back.) */
17314 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17315 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17316 L4_MABX_B.SFunction1_o71 = ((real_T) CAN_Sgn.UnsignedSgn);
17317 modeSignal = (UInt32) L4_MABX_B.SFunction1_o71;
17318 if (modeSignal == 4) {
17319 /* ...... "tr0_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17320 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17321 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17322 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17323 L4_MABX_B.SFunction1_o1_jr = ((real_T) CAN_Sgn.UnsignedSgn);
17324 }
17325
17326 if (modeSignal == 5) {
17327 /* ...... "tr0_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17328 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17329 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17330 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17331 if (CAN_Sgn.SignedSgn >> 15) {
17332 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17333 }
17334
17335 L4_MABX_B.SFunction1_o2_mq = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17336 );
17337 }
17338
17339 if (modeSignal == 12) {
17340 /* ...... "tr1_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17341 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17342 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17343 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17344 L4_MABX_B.SFunction1_o3_a1 = ((real_T) CAN_Sgn.UnsignedSgn);
17345 }
17346
17347 if (modeSignal == 13) {
17348 /* ...... "tr1_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17349 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17350 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17351 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17352 if (CAN_Sgn.SignedSgn >> 15) {
17353 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17354 }
17355
17356 L4_MABX_B.SFunction1_o4_nl = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17357 );
17358 }
17359
17360 if (modeSignal == 20) {
17361 /* ...... "tr2_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17362 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17363 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17364 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17365 L4_MABX_B.SFunction1_o5_b3 = ((real_T) CAN_Sgn.UnsignedSgn);
17366 }
17367
17368 if (modeSignal == 21) {
17369 /* ...... "tr2_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17370 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17371 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17372 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17373 if (CAN_Sgn.SignedSgn >> 15) {
17374 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17375 }
17376
17377 L4_MABX_B.SFunction1_o6_m = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17378 );
17379 }
17380
17381 if (modeSignal == 28) {
17382 /* ...... "tr3_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17383 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17384 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17385 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17386 L4_MABX_B.SFunction1_o7_iq = ((real_T) CAN_Sgn.UnsignedSgn);
17387 }
17388
17389 if (modeSignal == 29) {
17390 /* ...... "tr3_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17391 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17392 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17393 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17394 if (CAN_Sgn.SignedSgn >> 15) {
17395 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17396 }
17397
17398 L4_MABX_B.SFunction1_o8_i = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17399 );
17400 }
17401
17402 if (modeSignal == 36) {
17403 /* ...... "tr4_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17404 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17405 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17406 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17407 L4_MABX_B.SFunction1_o9_p = ((real_T) CAN_Sgn.UnsignedSgn);
17408 }
17409
17410 if (modeSignal == 37) {
17411 /* ...... "tr4_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17412 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17413 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17414 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17415 if (CAN_Sgn.SignedSgn >> 15) {
17416 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17417 }
17418
17419 L4_MABX_B.SFunction1_o10_e1 = 0.001 * ( ((real_T)
17420 CAN_Sgn.SignedSgn) );
17421 }
17422
17423 if (modeSignal == 44) {
17424 /* ...... "tr5_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17425 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17426 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17427 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17428 L4_MABX_B.SFunction1_o11_fh = ((real_T) CAN_Sgn.UnsignedSgn);
17429 }
17430
17431 if (modeSignal == 45) {
17432 /* ...... "tr5_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17433 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17434 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17435 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17436 if (CAN_Sgn.SignedSgn >> 15) {
17437 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17438 }
17439
17440 L4_MABX_B.SFunction1_o12_e2 = 0.001 * ( ((real_T)
17441 CAN_Sgn.SignedSgn) );
17442 }
17443
17444 if (modeSignal == 52) {
17445 /* ...... "tr6_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17446 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17447 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17448 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17449 L4_MABX_B.SFunction1_o13_g = ((real_T) CAN_Sgn.UnsignedSgn);
17450 }
17451
17452 if (modeSignal == 53) {
17453 /* ...... "tr6_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17454 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17455 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17456 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17457 if (CAN_Sgn.SignedSgn >> 15) {
17458 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17459 }
17460
17461 L4_MABX_B.SFunction1_o14_b = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17462 );
17463 }
17464
17465 if (modeSignal == 60) {
17466 /* ...... "tr7_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17467 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17468 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17469 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17470 L4_MABX_B.SFunction1_o15_k = ((real_T) CAN_Sgn.UnsignedSgn);
17471 }
17472
17473 if (modeSignal == 61) {
17474 /* ...... "tr7_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17475 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17476 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17477 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17478 if (CAN_Sgn.SignedSgn >> 15) {
17479 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17480 }
17481
17482 L4_MABX_B.SFunction1_o16_f = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17483 );
17484 }
17485
17486 if (modeSignal == 68) {
17487 /* ...... "tr8_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17488 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17489 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17490 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17491 L4_MABX_B.SFunction1_o17_et = ((real_T) CAN_Sgn.UnsignedSgn);
17492 }
17493
17494 if (modeSignal == 69) {
17495 /* ...... "tr8_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17496 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17497 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17498 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17499 if (CAN_Sgn.SignedSgn >> 15) {
17500 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17501 }
17502
17503 L4_MABX_B.SFunction1_o18_g = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17504 );
17505 }
17506
17507 if (modeSignal == 76) {
17508 /* ...... "tr9_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17509 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17510 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17511 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17512 L4_MABX_B.SFunction1_o19_k = ((real_T) CAN_Sgn.UnsignedSgn);
17513 }
17514
17515 if (modeSignal == 77) {
17516 /* ...... "tr9_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17517 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17518 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17519 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17520 if (CAN_Sgn.SignedSgn >> 15) {
17521 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17522 }
17523
17524 L4_MABX_B.SFunction1_o20_c = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17525 );
17526 }
17527
17528 if (modeSignal == 6) {
17529 /* ...... "tr0_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17530 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17531 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17532 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17533 CAN_Sgn.SignedSgn &= 0x000003FF;
17534 if (CAN_Sgn.SignedSgn >> 9) {
17535 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17536 }
17537
17538 L4_MABX_B.SFunction1_o21_j = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17539 }
17540
17541 if (modeSignal == 14) {
17542 /* ...... "tr1_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17543 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17544 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17545 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17546 CAN_Sgn.SignedSgn &= 0x000003FF;
17547 if (CAN_Sgn.SignedSgn >> 9) {
17548 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17549 }
17550
17551 L4_MABX_B.SFunction1_o22_d = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17552 }
17553
17554 if (modeSignal == 22) {
17555 /* ...... "tr2_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17556 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17557 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17558 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17559 CAN_Sgn.SignedSgn &= 0x000003FF;
17560 if (CAN_Sgn.SignedSgn >> 9) {
17561 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17562 }
17563
17564 L4_MABX_B.SFunction1_o23_m = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17565 }
17566
17567 if (modeSignal == 30) {
17568 /* ...... "tr3_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17569 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17570 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17571 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17572 CAN_Sgn.SignedSgn &= 0x000003FF;
17573 if (CAN_Sgn.SignedSgn >> 9) {
17574 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17575 }
17576
17577 L4_MABX_B.SFunction1_o24_b = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17578 }
17579
17580 if (modeSignal == 38) {
17581 /* ...... "tr4_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17582 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17583 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17584 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17585 CAN_Sgn.SignedSgn &= 0x000003FF;
17586 if (CAN_Sgn.SignedSgn >> 9) {
17587 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17588 }
17589
17590 L4_MABX_B.SFunction1_o25_g = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17591 }
17592
17593 if (modeSignal == 46) {
17594 /* ...... "tr5_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17595 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17596 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17597 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17598 CAN_Sgn.SignedSgn &= 0x000003FF;
17599 if (CAN_Sgn.SignedSgn >> 9) {
17600 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17601 }
17602
17603 L4_MABX_B.SFunction1_o26_n = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17604 }
17605
17606 if (modeSignal == 54) {
17607 /* ...... "tr6_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17608 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17609 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17610 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17611 CAN_Sgn.SignedSgn &= 0x000003FF;
17612 if (CAN_Sgn.SignedSgn >> 9) {
17613 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17614 }
17615
17616 L4_MABX_B.SFunction1_o27_o = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17617 }
17618
17619 if (modeSignal == 62) {
17620 /* ...... "tr7_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17621 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17622 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17623 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17624 CAN_Sgn.SignedSgn &= 0x000003FF;
17625 if (CAN_Sgn.SignedSgn >> 9) {
17626 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17627 }
17628
17629 L4_MABX_B.SFunction1_o28_m = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17630 }
17631
17632 if (modeSignal == 70) {
17633 /* ...... "tr8_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17634 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17635 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17636 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17637 CAN_Sgn.SignedSgn &= 0x000003FF;
17638 if (CAN_Sgn.SignedSgn >> 9) {
17639 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17640 }
17641
17642 L4_MABX_B.SFunction1_o29 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17643 }
17644
17645 if (modeSignal == 78) {
17646 /* ...... "tr9_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17647 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17648 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17649 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17650 CAN_Sgn.SignedSgn &= 0x000003FF;
17651 if (CAN_Sgn.SignedSgn >> 9) {
17652 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17653 }
17654
17655 L4_MABX_B.SFunction1_o30 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17656 }
17657
17658 if (modeSignal == 4) {
17659 /* ...... "tr0_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17660 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17661 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17662 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17663 L4_MABX_B.SFunction1_o31 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17664 );
17665 }
17666
17667 if (modeSignal == 12) {
17668 /* ...... "tr1_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17669 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17670 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17671 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17672 L4_MABX_B.SFunction1_o32 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17673 );
17674 }
17675
17676 if (modeSignal == 20) {
17677 /* ...... "tr2_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17678 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17679 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17680 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17681 L4_MABX_B.SFunction1_o33 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17682 );
17683 }
17684
17685 if (modeSignal == 28) {
17686 /* ...... "tr3_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17687 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17688 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17689 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17690 L4_MABX_B.SFunction1_o34 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17691 );
17692 }
17693
17694 if (modeSignal == 36) {
17695 /* ...... "tr4_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17696 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17697 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17698 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17699 L4_MABX_B.SFunction1_o35 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17700 );
17701 }
17702
17703 if (modeSignal == 44) {
17704 /* ...... "tr5_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17705 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17706 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17707 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17708 L4_MABX_B.SFunction1_o36 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17709 );
17710 }
17711
17712 if (modeSignal == 52) {
17713 /* ...... "tr6_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17714 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17715 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17716 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17717 L4_MABX_B.SFunction1_o37 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17718 );
17719 }
17720
17721 if (modeSignal == 60) {
17722 /* ...... "tr7_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17723 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17724 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17725 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17726 L4_MABX_B.SFunction1_o38 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17727 );
17728 }
17729
17730 if (modeSignal == 68) {
17731 /* ...... "tr8_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17732 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17733 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17734 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17735 L4_MABX_B.SFunction1_o39 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17736 );
17737 }
17738
17739 if (modeSignal == 76) {
17740 /* ...... "tr9_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17741 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17742 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17743 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17744 L4_MABX_B.SFunction1_o40 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17745 );
17746 }
17747
17748 if (modeSignal == 6) {
17749 /* ...... "tr0_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17750 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17751 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17752 L4_MABX_B.SFunction1_o41 = 0.00392156862745098 * ( ((real_T)
17753 CAN_Sgn.UnsignedSgn) );
17754 }
17755
17756 if (modeSignal == 14) {
17757 /* ...... "tr1_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17758 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17759 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17760 L4_MABX_B.SFunction1_o42 = 0.00392156862745098 * ( ((real_T)
17761 CAN_Sgn.UnsignedSgn) );
17762 }
17763
17764 if (modeSignal == 22) {
17765 /* ...... "tr2_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17766 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17767 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17768 L4_MABX_B.SFunction1_o43 = 0.00392156862745098 * ( ((real_T)
17769 CAN_Sgn.UnsignedSgn) );
17770 }
17771
17772 if (modeSignal == 30) {
17773 /* ...... "tr3_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17774 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17775 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17776 L4_MABX_B.SFunction1_o44 = 0.00392156862745098 * ( ((real_T)
17777 CAN_Sgn.UnsignedSgn) );
17778 }
17779
17780 if (modeSignal == 38) {
17781 /* ...... "tr4_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17782 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17783 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17784 L4_MABX_B.SFunction1_o45 = 0.00392156862745098 * ( ((real_T)
17785 CAN_Sgn.UnsignedSgn) );
17786 }
17787
17788 if (modeSignal == 46) {
17789 /* ...... "tr5_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17790 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17791 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17792 L4_MABX_B.SFunction1_o46 = 0.00392156862745098 * ( ((real_T)
17793 CAN_Sgn.UnsignedSgn) );
17794 }
17795
17796 if (modeSignal == 54) {
17797 /* ...... "tr6_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17798 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17799 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17800 L4_MABX_B.SFunction1_o47 = 0.00392156862745098 * ( ((real_T)
17801 CAN_Sgn.UnsignedSgn) );
17802 }
17803
17804 if (modeSignal == 62) {
17805 /* ...... "tr7_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17806 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17807 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17808 L4_MABX_B.SFunction1_o48 = 0.00392156862745098 * ( ((real_T)
17809 CAN_Sgn.UnsignedSgn) );
17810 }
17811
17812 if (modeSignal == 70) {
17813 /* ...... "tr8_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17814 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17815 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17816 L4_MABX_B.SFunction1_o49 = 0.00392156862745098 * ( ((real_T)
17817 CAN_Sgn.UnsignedSgn) );
17818 }
17819
17820 if (modeSignal == 78) {
17821 /* ...... "tr9_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17822 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17823 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17824 L4_MABX_B.SFunction1_o50 = 0.00392156862745098 * ( ((real_T)
17825 CAN_Sgn.UnsignedSgn) );
17826 }
17827
17828 if (modeSignal == 4) {
17829 /* ...... "tr0_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17830 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17831 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17832 CAN_Sgn.SignedSgn &= 0x00003FFF;
17833 if (CAN_Sgn.SignedSgn >> 13) {
17834 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17835 }
17836
17837 L4_MABX_B.SFunction1_o51 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17838 }
17839
17840 if (modeSignal == 5) {
17841 /* ...... "tr0_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17842 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17843 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17844 L4_MABX_B.SFunction1_o52 = -8.8 + ( 0.05 * ( ((real_T)
17845 CAN_Sgn.UnsignedSgn) ) );
17846 }
17847
17848 if (modeSignal == 12) {
17849 /* ...... "tr1_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17850 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17851 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17852 CAN_Sgn.SignedSgn &= 0x00003FFF;
17853 if (CAN_Sgn.SignedSgn >> 13) {
17854 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17855 }
17856
17857 L4_MABX_B.SFunction1_o53 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17858 }
17859
17860 if (modeSignal == 13) {
17861 /* ...... "tr1_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17862 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17863 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17864 L4_MABX_B.SFunction1_o54 = -8.8 + ( 0.05 * ( ((real_T)
17865 CAN_Sgn.UnsignedSgn) ) );
17866 }
17867
17868 if (modeSignal == 20) {
17869 /* ...... "tr2_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17870 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17871 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17872 CAN_Sgn.SignedSgn &= 0x00003FFF;
17873 if (CAN_Sgn.SignedSgn >> 13) {
17874 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17875 }
17876
17877 L4_MABX_B.SFunction1_o55 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17878 }
17879
17880 if (modeSignal == 21) {
17881 /* ...... "tr2_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17882 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17883 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17884 L4_MABX_B.SFunction1_o56 = -8.8 + ( 0.05 * ( ((real_T)
17885 CAN_Sgn.UnsignedSgn) ) );
17886 }
17887
17888 if (modeSignal == 28) {
17889 /* ...... "tr3_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17890 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17891 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17892 CAN_Sgn.SignedSgn &= 0x00003FFF;
17893 if (CAN_Sgn.SignedSgn >> 13) {
17894 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17895 }
17896
17897 L4_MABX_B.SFunction1_o57 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17898 }
17899
17900 if (modeSignal == 29) {
17901 /* ...... "tr3_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17902 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17903 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17904 L4_MABX_B.SFunction1_o58 = -8.8 + ( 0.05 * ( ((real_T)
17905 CAN_Sgn.UnsignedSgn) ) );
17906 }
17907
17908 if (modeSignal == 36) {
17909 /* ...... "tr4_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17910 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17911 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17912 CAN_Sgn.SignedSgn &= 0x00003FFF;
17913 if (CAN_Sgn.SignedSgn >> 13) {
17914 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17915 }
17916
17917 L4_MABX_B.SFunction1_o59 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17918 }
17919
17920 if (modeSignal == 37) {
17921 /* ...... "tr4_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17922 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17923 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17924 L4_MABX_B.SFunction1_o60 = -8.8 + ( 0.05 * ( ((real_T)
17925 CAN_Sgn.UnsignedSgn) ) );
17926 }
17927
17928 if (modeSignal == 44) {
17929 /* ...... "tr5_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17930 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17931 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17932 CAN_Sgn.SignedSgn &= 0x00003FFF;
17933 if (CAN_Sgn.SignedSgn >> 13) {
17934 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17935 }
17936
17937 L4_MABX_B.SFunction1_o61 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17938 }
17939
17940 if (modeSignal == 45) {
17941 /* ...... "tr5_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17942 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17943 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17944 L4_MABX_B.SFunction1_o62 = -8.8 + ( 0.05 * ( ((real_T)
17945 CAN_Sgn.UnsignedSgn) ) );
17946 }
17947
17948 if (modeSignal == 52) {
17949 /* ...... "tr6_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17950 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17951 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17952 CAN_Sgn.SignedSgn &= 0x00003FFF;
17953 if (CAN_Sgn.SignedSgn >> 13) {
17954 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17955 }
17956
17957 L4_MABX_B.SFunction1_o63 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17958 }
17959
17960 if (modeSignal == 53) {
17961 /* ...... "tr6_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17962 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17963 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17964 L4_MABX_B.SFunction1_o64 = -8.8 + ( 0.05 * ( ((real_T)
17965 CAN_Sgn.UnsignedSgn) ) );
17966 }
17967
17968 if (modeSignal == 60) {
17969 /* ...... "tr7_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17970 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17971 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17972 CAN_Sgn.SignedSgn &= 0x00003FFF;
17973 if (CAN_Sgn.SignedSgn >> 13) {
17974 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17975 }
17976
17977 L4_MABX_B.SFunction1_o65 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17978 }
17979
17980 if (modeSignal == 61) {
17981 /* ...... "tr7_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17982 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17983 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17984 L4_MABX_B.SFunction1_o66 = -8.8 + ( 0.05 * ( ((real_T)
17985 CAN_Sgn.UnsignedSgn) ) );
17986 }
17987
17988 if (modeSignal == 68) {
17989 /* ...... "tr8_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17990 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17991 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17992 CAN_Sgn.SignedSgn &= 0x00003FFF;
17993 if (CAN_Sgn.SignedSgn >> 13) {
17994 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17995 }
17996
17997 L4_MABX_B.SFunction1_o67 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17998 }
17999
18000 if (modeSignal == 69) {
18001 /* ...... "tr8_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
18002 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18003 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18004 L4_MABX_B.SFunction1_o68 = -8.8 + ( 0.05 * ( ((real_T)
18005 CAN_Sgn.UnsignedSgn) ) );
18006 }
18007
18008 if (modeSignal == 76) {
18009 /* ...... "tr9_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
18010 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18011 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
18012 CAN_Sgn.SignedSgn &= 0x00003FFF;
18013 if (CAN_Sgn.SignedSgn >> 13) {
18014 CAN_Sgn.SignedSgn |= 0xFFFFC000;
18015 }
18016
18017 L4_MABX_B.SFunction1_o69 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
18018 }
18019
18020 if (modeSignal == 77) {
18021 /* ...... "tr9_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
18022 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18023 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18024 L4_MABX_B.SFunction1_o70 = -8.8 + ( 0.05 * ( ((real_T)
18025 CAN_Sgn.UnsignedSgn) ) );
18026 }
18027 }
18028 }
18029 } else {
18030 /* set RX status to 0 because no new message has arrived */
18031 L4_MABX_B.SFunction1_o72 = 0.0;
18032 }
18033 }
18034 }
18035
18036 /* End of Constant: '<S430>/Constant' */
18037 /* End of Outputs for SubSystem: '<S505>/Tracks' */
18038
18039 /* DataTypeConversion: '<S505>/Data Type Conversion10' */
18040 L4_MABX_B.Bendix_RADAR_Tracks_RX_delta_ti = L4_MABX_B.SFunction1_o74;
18041
18042 /* DataTypeConversion: '<S505>/Data Type Conversion8' */
18043 L4_MABX_B.Bendix_RADAR_Tracks_RX_status = (L4_MABX_B.SFunction1_o72 != 0.0);
18044
18045 /* DataTypeConversion: '<S505>/Data Type Conversion9' */
18046 L4_MABX_B.Bendix_RADAR_Tracks_RX_time = L4_MABX_B.SFunction1_o73;
18047
18048 /* DataTypeConversion: '<S507>/Data Type Conversion10' */
18049 L4_MABX_B.RX_delta_time_e = L4_MABX_B.SFunction1_o23_d;
18050
18051 /* DataTypeConversion: '<S507>/Data Type Conversion8' */
18052 L4_MABX_B.RX_status_o = (L4_MABX_B.SFunction1_o21_g != 0.0);
18053
18054 /* DataTypeConversion: '<S507>/Data Type Conversion9' */
18055 L4_MABX_B.RX_time_h1 = L4_MABX_B.SFunction1_o22_b;
18056
18057 /* DataTypeConversion: '<S509>/Data Type Conversion10' */
18058 L4_MABX_B.RX_delta_time_f = L4_MABX_B.SFunction1_o23_ju;
18059
18060 /* DataTypeConversion: '<S509>/Data Type Conversion8' */
18061 L4_MABX_B.RX_status_gy = (L4_MABX_B.SFunction1_o21_p != 0.0);
18062
18063 /* DataTypeConversion: '<S509>/Data Type Conversion9' */
18064 L4_MABX_B.RX_time_iha = L4_MABX_B.SFunction1_o22_c;
18065
18066 /* Switch: '<S511>/Switch' */
18067 if (L4_MABX_B.RX_status_i) {
18068 L4_MABX_B.RX_status_j = L4_MABX_B.RX_status_i;
18069 } else {
18070 /* DataTypeConversion: '<S511>/Data Type Conversion1' */
18071 L4_MABX_B.RX_status_gw = (L4_MABX_B.SFunction1_o5_k0 != 0.0);
18072 L4_MABX_B.RX_status_j = L4_MABX_B.RX_status_gw;
18073 }
18074
18075 if (L4_MABX_B.RX_status_i) {
18076 /* DataTypeConversion: '<S511>/Data Type Conversion9' */
18077 L4_MABX_B.RX_time_el = L4_MABX_B.SFunction1_o6_n;
18078 L4_MABX_B.RX_time_ip = L4_MABX_B.RX_time_el;
18079
18080 /* DataTypeConversion: '<S511>/Data Type Conversion10' */
18081 L4_MABX_B.RX_delta_time_pq = L4_MABX_B.SFunction1_o7_h;
18082 L4_MABX_B.RX_delta_time_j = L4_MABX_B.RX_delta_time_pq;
18083 } else {
18084 /* DataTypeConversion: '<S511>/Data Type Conversion2' */
18085 L4_MABX_B.RX_time_jy = L4_MABX_B.SFunction1_o6_lx;
18086 L4_MABX_B.RX_time_ip = L4_MABX_B.RX_time_jy;
18087
18088 /* DataTypeConversion: '<S511>/Data Type Conversion3' */
18089 L4_MABX_B.RX_delta_time_mg = L4_MABX_B.SFunction1_o7_f4;
18090 L4_MABX_B.RX_delta_time_j = L4_MABX_B.RX_delta_time_mg;
18091 }
18092
18093 /* DataTypeConversion: '<S514>/Data Type Conversion10' */
18094 L4_MABX_B.RX_delta_time_i = L4_MABX_B.SFunction1_o4_ex;
18095
18096 /* DataTypeConversion: '<S514>/Data Type Conversion8' */
18097 L4_MABX_B.RX_status_ov = (L4_MABX_B.SFunction1_o2_iqn != 0.0);
18098
18099 /* DataTypeConversion: '<S514>/Data Type Conversion9' */
18100 L4_MABX_B.RX_time_gm = L4_MABX_B.SFunction1_o3_nj;
18101
18102 /* Outputs for Enabled SubSystem: '<S516>/EBC1_0B' incorporates:
18103 * EnablePort: '<S517>/Enable'
18104 */
18105 /* Constant: '<S435>/Constant1' */
18106 if (L4_MABX_P.Constant1_Value_ls) {
18107 /* S-Function (rti_commonblock): '<S517>/S-Function1' */
18108 /* This comment workarounds a code generation problem */
18109
18110 /* dSPACE RTICAN RX Message Block: "EBC1_0B" Id:418382091 */
18111 {
18112 UInt32 *CAN_Msg;
18113 static dsfloat time_old = 0.0;
18114
18115 /* Read status and timestamp info (previous message) */
18116 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].timestamp !=
18117 time_old) {
18118 /* ... save timestamp info for the calculation of the RX status
18119 during the consecutive sample hit*/
18120 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].
18121 timestamp;
18122
18123 /* ... set the processed flag to one */
18124 L4_MABX_B.SFunction1_o23_j = 1.0;
18125 L4_MABX_B.SFunction1_o24_c = (real_T)
18126 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].timestamp;
18127 L4_MABX_B.SFunction1_o25_b = (real_T)
18128 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].deltatime;
18129 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].data;
18130
18131 /* Decode CAN message */
18132 {
18133 {
18134 rtican_Signal_t CAN_Sgn;
18135
18136 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
18137 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18138 CAN_Sgn.UnsignedSgn &= 0x00000003;
18139 L4_MABX_B.SFunction1_o1_c1m = ((real_T) CAN_Sgn.UnsignedSgn);
18140
18141 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
18142 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18143 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18144 CAN_Sgn.UnsignedSgn &= 0x00000003;
18145 L4_MABX_B.SFunction1_o2_p2 = ((real_T) CAN_Sgn.UnsignedSgn);
18146
18147 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
18148 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18149 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18150 CAN_Sgn.UnsignedSgn &= 0x00000003;
18151 L4_MABX_B.SFunction1_o3_iw = ((real_T) CAN_Sgn.UnsignedSgn);
18152
18153 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
18154 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18155 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
18156 CAN_Sgn.UnsignedSgn &= 0x00000003;
18157 L4_MABX_B.SFunction1_o4_iy = ((real_T) CAN_Sgn.UnsignedSgn);
18158
18159 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
18160 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
18161 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18162 L4_MABX_B.SFunction1_o5_bm = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
18163
18164 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
18165 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18166 CAN_Sgn.UnsignedSgn &= 0x00000003;
18167 L4_MABX_B.SFunction1_o6_e = ((real_T) CAN_Sgn.UnsignedSgn);
18168
18169 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
18170 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18171 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18172 CAN_Sgn.UnsignedSgn &= 0x00000003;
18173 L4_MABX_B.SFunction1_o7_gn = ((real_T) CAN_Sgn.UnsignedSgn);
18174
18175 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
18176 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18177 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18178 CAN_Sgn.UnsignedSgn &= 0x00000003;
18179 L4_MABX_B.SFunction1_o8_cp = ((real_T) CAN_Sgn.UnsignedSgn);
18180
18181 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
18182 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18183 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
18184 CAN_Sgn.UnsignedSgn &= 0x00000003;
18185 L4_MABX_B.SFunction1_o9_cuu = ((real_T) CAN_Sgn.UnsignedSgn);
18186
18187 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
18188 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18189 CAN_Sgn.UnsignedSgn &= 0x00000003;
18190 L4_MABX_B.SFunction1_o10_g = ((real_T) CAN_Sgn.UnsignedSgn);
18191
18192 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
18193 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18194 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18195 CAN_Sgn.UnsignedSgn &= 0x00000003;
18196 L4_MABX_B.SFunction1_o11_np = ((real_T) CAN_Sgn.UnsignedSgn);
18197
18198 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
18199 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18200 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18201 CAN_Sgn.UnsignedSgn &= 0x00000003;
18202 L4_MABX_B.SFunction1_o12_b = ((real_T) CAN_Sgn.UnsignedSgn);
18203
18204 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
18205 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18206 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
18207 CAN_Sgn.UnsignedSgn &= 0x00000003;
18208 L4_MABX_B.SFunction1_o13_n = ((real_T) CAN_Sgn.UnsignedSgn);
18209
18210 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
18211 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
18212 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18213 L4_MABX_B.SFunction1_o14_j = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
18214
18215 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
18216 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18217 CAN_Sgn.UnsignedSgn &= 0x00000003;
18218 L4_MABX_B.SFunction1_o15_g = ((real_T) CAN_Sgn.UnsignedSgn);
18219
18220 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
18221 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18222 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18223 CAN_Sgn.UnsignedSgn &= 0x00000003;
18224 L4_MABX_B.SFunction1_o16_e = ((real_T) CAN_Sgn.UnsignedSgn);
18225
18226 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
18227 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18228 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18229 CAN_Sgn.UnsignedSgn &= 0x00000003;
18230 L4_MABX_B.SFunction1_o17_m = ((real_T) CAN_Sgn.UnsignedSgn);
18231
18232 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
18233 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18234 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
18235 CAN_Sgn.UnsignedSgn &= 0x00000003;
18236 L4_MABX_B.SFunction1_o18_o = ((real_T) CAN_Sgn.UnsignedSgn);
18237
18238 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
18239 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18240 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18241 L4_MABX_B.SFunction1_o19_c = ((real_T) CAN_Sgn.UnsignedSgn);
18242
18243 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
18244 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
18245 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18246 CAN_Sgn.UnsignedSgn &= 0x00000003;
18247 L4_MABX_B.SFunction1_o20_n = ((real_T) CAN_Sgn.UnsignedSgn);
18248
18249 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
18250 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
18251 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18252 CAN_Sgn.UnsignedSgn &= 0x00000003;
18253 L4_MABX_B.SFunction1_o21_h = ((real_T) CAN_Sgn.UnsignedSgn);
18254
18255 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
18256 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
18257 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
18258 CAN_Sgn.UnsignedSgn &= 0x00000003;
18259 L4_MABX_B.SFunction1_o22_k = ((real_T) CAN_Sgn.UnsignedSgn);
18260 }
18261 }
18262 } else {
18263 /* set RX status to 0 because no new message has arrived */
18264 L4_MABX_B.SFunction1_o23_j = 0.0;
18265 }
18266 }
18267 }
18268
18269 /* End of Constant: '<S435>/Constant1' */
18270 /* End of Outputs for SubSystem: '<S516>/EBC1_0B' */
18271
18272 /* DataTypeConversion: '<S516>/Data Type Conversion10' */
18273 L4_MABX_B.RX_delta_time_pd = L4_MABX_B.SFunction1_o25_b;
18274
18275 /* DataTypeConversion: '<S516>/Data Type Conversion8' */
18276 L4_MABX_B.RX_status_js = (L4_MABX_B.SFunction1_o23_j != 0.0);
18277
18278 /* DataTypeConversion: '<S516>/Data Type Conversion9' */
18279 L4_MABX_B.RX_time_f = L4_MABX_B.SFunction1_o24_c;
18280
18281 /* DataTypeConversion: '<S518>/Data Type Conversion10' */
18282 L4_MABX_B.RX_delta_time_b = L4_MABX_B.SFunction1_o25_p;
18283
18284 /* DataTypeConversion: '<S518>/Data Type Conversion8' */
18285 L4_MABX_B.RX_status_jv = (L4_MABX_B.SFunction1_o23_f != 0.0);
18286
18287 /* DataTypeConversion: '<S518>/Data Type Conversion9' */
18288 L4_MABX_B.RX_time_p = L4_MABX_B.SFunction1_o24_k;
18289
18290 /* DataTypeConversion: '<S520>/Data Type Conversion10' */
18291 L4_MABX_B.RX_delta_time_l = L4_MABX_B.SFunction1_o10_hp;
18292
18293 /* DataTypeConversion: '<S520>/Data Type Conversion8' */
18294 L4_MABX_B.RX_status_n2 = (L4_MABX_B.SFunction1_o8_mh != 0.0);
18295
18296 /* DataTypeConversion: '<S520>/Data Type Conversion9' */
18297 L4_MABX_B.RX_time_b = L4_MABX_B.SFunction1_o9_gl;
18298
18299 /* DataTypeConversion: '<S567>/Data Type Conversion10' */
18300 L4_MABX_B.RX_delta_time_eu = L4_MABX_B.SFunction1_o11_k;
18301
18302 /* DataTypeConversion: '<S567>/Data Type Conversion8' */
18303 L4_MABX_B.RX_status_fy = (L4_MABX_B.SFunction1_o9_nu != 0.0);
18304
18305 /* DataTypeConversion: '<S567>/Data Type Conversion9' */
18306 L4_MABX_B.RX_time_fj = L4_MABX_B.SFunction1_o10_f;
18307
18308 /* Outputs for Enabled SubSystem: '<S569>/EEC2_001' incorporates:
18309 * EnablePort: '<S570>/Enable'
18310 */
18311 /* Constant: '<S440>/Enable_RX_EEC2_00' */
18312 if (L4_MABX_P.Enable_RX_EEC2_00_Value) {
18313 /* S-Function (rti_commonblock): '<S570>/S-Function1' */
18314 /* This comment workarounds a code generation problem */
18315
18316 /* dSPACE RTICAN RX Message Block: "EEC2_00" Id:217056000 */
18317 {
18318 UInt32 *CAN_Msg;
18319 static dsfloat time_old = 0.0;
18320
18321 /* Read status and timestamp info (previous message) */
18322 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].timestamp !=
18323 time_old) {
18324 /* ... save timestamp info for the calculation of the RX status
18325 during the consecutive sample hit*/
18326 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].
18327 timestamp;
18328
18329 /* ... set the processed flag to one */
18330 L4_MABX_B.SFunction1_o15_h = 1.0;
18331 L4_MABX_B.SFunction1_o16_a = (real_T)
18332 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].timestamp;
18333 L4_MABX_B.SFunction1_o17_i = (real_T)
18334 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].deltatime;
18335 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].data;
18336
18337 /* Decode CAN message */
18338 {
18339 {
18340 rtican_Signal_t CAN_Sgn;
18341
18342 /* ...... "SPN558_AccelPed1LowIdlSwitch" (0|2, standard signal, unsigned int, little endian) */
18343 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18344 CAN_Sgn.UnsignedSgn &= 0x00000003;
18345 L4_MABX_B.SFunction1_o1_kiv = ((real_T) CAN_Sgn.UnsignedSgn);
18346
18347 /* ...... "SPN559_AccelPedKickdownSw" (2|2, standard signal, unsigned int, little endian) */
18348 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18349 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18350 CAN_Sgn.UnsignedSgn &= 0x00000003;
18351 L4_MABX_B.SFunction1_o2_os = ((real_T) CAN_Sgn.UnsignedSgn);
18352
18353 /* ...... "SPN1437_RoadSpeedLimitStatus" (4|2, standard signal, unsigned int, little endian) */
18354 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18355 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18356 CAN_Sgn.UnsignedSgn &= 0x00000003;
18357 L4_MABX_B.SFunction1_o3_ot = ((real_T) CAN_Sgn.UnsignedSgn);
18358
18359 /* ...... "SPN2970_AccelPed2LowIdlSwitch" (6|2, standard signal, unsigned int, little endian) */
18360 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18361 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
18362 CAN_Sgn.UnsignedSgn &= 0x00000003;
18363 L4_MABX_B.SFunction1_o4_bm = ((real_T) CAN_Sgn.UnsignedSgn);
18364
18365 /* ...... "SPN91_AccelPedPos1" (8|8, standard signal, unsigned int, little endian) */
18366 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
18367 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18368 L4_MABX_B.SFunction1_o5_nc = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
18369
18370 /* ...... "SPN92_EngPercLoadAtCurrSpd" (16|8, standard signal, unsigned int, little endian) */
18371 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18372 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18373 L4_MABX_B.SFunction1_o6_j4 = ((real_T) CAN_Sgn.UnsignedSgn);
18374
18375 /* ...... "SPN974_RemAccelPedalPosition" (24|8, standard signal, unsigned int, little endian) */
18376 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18377 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18378 L4_MABX_B.SFunction1_o7_g = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
18379
18380 /* ...... "SPN29_AccelPedPos2" (32|8, standard signal, unsigned int, little endian) */
18381 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
18382 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18383 L4_MABX_B.SFunction1_o8_fl = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
18384
18385 /* ...... "SPN2979_VehAccelRateLimStatus" (40|2, standard signal, unsigned int, little endian) */
18386 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18387 CAN_Sgn.UnsignedSgn &= 0x00000003;
18388 L4_MABX_B.SFunction1_o9_cu = ((real_T) CAN_Sgn.UnsignedSgn);
18389
18390 /* ...... "SPN5021_MomEngMaxPwrEnFdbk" (42|2, standard signal, unsigned int, little endian) */
18391 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18392 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18393 CAN_Sgn.UnsignedSgn &= 0x00000003;
18394 L4_MABX_B.SFunction1_o10_p = ((real_T) CAN_Sgn.UnsignedSgn);
18395
18396 /* ...... "SPN5399_DPFThermMgmtActive" (44|2, standard signal, unsigned int, little endian) */
18397 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18398 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18399 CAN_Sgn.UnsignedSgn &= 0x00000003;
18400 L4_MABX_B.SFunction1_o11_e = ((real_T) CAN_Sgn.UnsignedSgn);
18401
18402 /* ...... "SPN5400_SCRThermMgmtActive" (46|2, standard signal, unsigned int, little endian) */
18403 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18404 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
18405 CAN_Sgn.UnsignedSgn &= 0x00000003;
18406 L4_MABX_B.SFunction1_o12_g = ((real_T) CAN_Sgn.UnsignedSgn);
18407
18408 /* ...... "SPN3357_ActMaxAvailEngPercTrq" (48|8, standard signal, unsigned int, little endian) */
18409 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18410 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18411 L4_MABX_B.SFunction1_o13_c = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
18412
18413 /* ...... "SPN5398_EstPumpingPercentTorque" (56|8, standard signal, unsigned int, little endian) */
18414 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
18415 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18416 L4_MABX_B.SFunction1_o14_e = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
18417 );
18418 }
18419 }
18420 } else {
18421 /* set RX status to 0 because no new message has arrived */
18422 L4_MABX_B.SFunction1_o15_h = 0.0;
18423 }
18424 }
18425 }
18426
18427 /* End of Constant: '<S440>/Enable_RX_EEC2_00' */
18428 /* End of Outputs for SubSystem: '<S569>/EEC2_001' */
18429
18430 /* DataTypeConversion: '<S569>/Data Type Conversion10' */
18431 L4_MABX_B.RX_delta_time_pj = L4_MABX_B.SFunction1_o17_i;
18432
18433 /* DataTypeConversion: '<S569>/Data Type Conversion8' */
18434 L4_MABX_B.RX_status_ir = (L4_MABX_B.SFunction1_o15_h != 0.0);
18435
18436 /* DataTypeConversion: '<S569>/Data Type Conversion9' */
18437 L4_MABX_B.RX_time_cr = L4_MABX_B.SFunction1_o16_a;
18438
18439 /* DataTypeConversion: '<S571>/Data Type Conversion10' */
18440 L4_MABX_B.RX_delta_time_d = L4_MABX_B.SFunction1_o5_g;
18441
18442 /* DataTypeConversion: '<S571>/Data Type Conversion8' */
18443 L4_MABX_B.RX_status_d = (L4_MABX_B.SFunction1_o3_m3 != 0.0);
18444
18445 /* DataTypeConversion: '<S571>/Data Type Conversion9' */
18446 L4_MABX_B.RX_time_o = L4_MABX_B.SFunction1_o4_e0;
18447
18448 /* DataTypeConversion: '<S573>/Data Type Conversion10' */
18449 L4_MABX_B.RX_delta_time_bi = L4_MABX_B.SFunction1_o6_k;
18450
18451 /* DataTypeConversion: '<S573>/Data Type Conversion8' */
18452 L4_MABX_B.RX_status_im = (L4_MABX_B.SFunction1_o4_ls != 0.0);
18453
18454 /* DataTypeConversion: '<S573>/Data Type Conversion9' */
18455 L4_MABX_B.RX_time_c5 = L4_MABX_B.SFunction1_o5_dc;
18456
18457 /* Switch: '<S575>/Switch' */
18458 if (L4_MABX_B.RX_status_l) {
18459 L4_MABX_B.SID_c = L4_MABX_B.SFunction1_o1_ny;
18460 L4_MABX_B.SetMode = L4_MABX_B.SFunction1_o2_oy;
18461 L4_MABX_B.OpMode = L4_MABX_B.SFunction1_o3_f1;
18462 L4_MABX_B.VDOP = L4_MABX_B.SFunction1_o5_i1;
18463 L4_MABX_B.TDOP = L4_MABX_B.SFunction1_o6_lq;
18464 L4_MABX_B.RX_status_a = L4_MABX_B.RX_status_l;
18465 } else {
18466 L4_MABX_B.SID_c = L4_MABX_B.SFunction1_o1_l3y;
18467 L4_MABX_B.SetMode = L4_MABX_B.SFunction1_o2_c;
18468 L4_MABX_B.OpMode = L4_MABX_B.SFunction1_o3_id;
18469 L4_MABX_B.VDOP = L4_MABX_B.SFunction1_o5_hk;
18470 L4_MABX_B.TDOP = L4_MABX_B.SFunction1_o6_af;
18471
18472 /* DataTypeConversion: '<S575>/Data Type Conversion3' */
18473 L4_MABX_B.RX_status_kf = (L4_MABX_B.SFunction1_o7_p != 0.0);
18474 L4_MABX_B.RX_status_a = L4_MABX_B.RX_status_kf;
18475 }
18476
18477 if (L4_MABX_B.RX_status_l) {
18478 /* DataTypeConversion: '<S575>/Data Type Conversion9' */
18479 L4_MABX_B.RX_time_ld = L4_MABX_B.SFunction1_o8_p;
18480 L4_MABX_B.RX_time_a = L4_MABX_B.RX_time_ld;
18481
18482 /* DataTypeConversion: '<S575>/Data Type Conversion10' */
18483 L4_MABX_B.RX_delta_time_nf = L4_MABX_B.SFunction1_o9_ks;
18484 L4_MABX_B.RX_delta_time_eq = L4_MABX_B.RX_delta_time_nf;
18485 } else {
18486 /* DataTypeConversion: '<S575>/Data Type Conversion2' */
18487 L4_MABX_B.RX_time_er = L4_MABX_B.SFunction1_o8_g;
18488 L4_MABX_B.RX_time_a = L4_MABX_B.RX_time_er;
18489
18490 /* DataTypeConversion: '<S575>/Data Type Conversion1' */
18491 L4_MABX_B.RX_delta_time_bw = L4_MABX_B.SFunction1_o9_k;
18492 L4_MABX_B.RX_delta_time_eq = L4_MABX_B.RX_delta_time_bw;
18493 }
18494
18495 /* DataTypeConversion: '<S578>/Data Type Conversion10' */
18496 L4_MABX_B.RX_delta_time_h = L4_MABX_B.SFunction1_o7_m0;
18497
18498 /* DataTypeConversion: '<S578>/Data Type Conversion8' */
18499 L4_MABX_B.RX_status_e = (L4_MABX_B.SFunction1_o5_e2 != 0.0);
18500
18501 /* DataTypeConversion: '<S578>/Data Type Conversion9' */
18502 L4_MABX_B.RX_time_d = L4_MABX_B.SFunction1_o6_os;
18503
18504 /* Switch: '<S445>/Switch' */
18505 if (L4_MABX_B.Operator_h3) {
18506 ReAX_EchoedSteerWheelPos = L4_MABX_B.SFunction1_o2_onq;
18507
18508 /* DataTypeConversion: '<S580>/Data Type Conversion8' */
18509 L4_MABX_B.RX_status_gf = (L4_MABX_B.SFunction1_o3_mo != 0.0);
18510 L4_MABX_B.RX_status_eq = L4_MABX_B.RX_status_gf;
18511
18512 /* DataTypeConversion: '<S580>/Data Type Conversion9' */
18513 L4_MABX_B.RX_time_cf = L4_MABX_B.SFunction1_o4_bh;
18514 L4_MABX_B.RX_time_cv = L4_MABX_B.RX_time_cf;
18515
18516 /* DataTypeConversion: '<S580>/Data Type Conversion10' */
18517 L4_MABX_B.RX_delta_time_lv = L4_MABX_B.SFunction1_o5_ef;
18518 L4_MABX_B.RX_delta_time_fr = L4_MABX_B.RX_delta_time_lv;
18519 } else {
18520 ReAX_EchoedSteerWheelPos = L4_MABX_B.SFunction1_o2_h5;
18521
18522 /* DataTypeConversion: '<S581>/Data Type Conversion8' */
18523 L4_MABX_B.RX_status_po = (L4_MABX_B.SFunction1_o3_m4 != 0.0);
18524 L4_MABX_B.RX_status_eq = L4_MABX_B.RX_status_po;
18525
18526 /* DataTypeConversion: '<S581>/Data Type Conversion9' */
18527 L4_MABX_B.RX_time_fu = L4_MABX_B.SFunction1_o4_gp;
18528 L4_MABX_B.RX_time_cv = L4_MABX_B.RX_time_fu;
18529
18530 /* DataTypeConversion: '<S581>/Data Type Conversion10' */
18531 L4_MABX_B.RX_delta_time_hz = L4_MABX_B.SFunction1_o5_i;
18532 L4_MABX_B.RX_delta_time_fr = L4_MABX_B.RX_delta_time_hz;
18533 }
18534
18535 /* RelationalOperator: '<S617>/Operator' incorporates:
18536 * Constant: '<S448>/Constant'
18537 * Constant: '<S613>/Constant'
18538 */
18539 L4_MABX_B.Operator_dy = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18540 L4_MABX_P.Constant_Value_en);
18541
18542 /* Outputs for Enabled SubSystem: '<S610>/CAN_TYPE1_RX_M1_C1' incorporates:
18543 * EnablePort: '<S614>/Enable'
18544 */
18545 if (L4_MABX_B.Operator_dy) {
18546 /* S-Function (rti_commonblock): '<S614>/S-Function1' */
18547 /* This comment workarounds a code generation problem */
18548
18549 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18550 {
18551 UInt32 *CAN_Msg;
18552 static dsfloat time_old = 0.0;
18553
18554 /* Read status and timestamp info (previous message) */
18555 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].timestamp !=
18556 time_old) {
18557 /* ... save timestamp info for the calculation of the RX status
18558 during the consecutive sample hit*/
18559 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].
18560 timestamp;
18561
18562 /* ... set the processed flag to one */
18563 L4_MABX_B.SFunction1_o3_ed = 1.0;
18564 L4_MABX_B.SFunction1_o4_cs = (real_T)
18565 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].timestamp;
18566 L4_MABX_B.SFunction1_o5_pf = (real_T)
18567 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].deltatime;
18568 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].data;
18569
18570 /* Decode CAN message */
18571 {
18572 {
18573 rtican_Signal_t CAN_Sgn;
18574
18575 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18576 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18577 CAN_Sgn.UnsignedSgn &= 0x00000003;
18578 L4_MABX_B.SFunction1_o1_pg = ((real_T) CAN_Sgn.UnsignedSgn);
18579
18580 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18581 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18582 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18583 CAN_Sgn.UnsignedSgn &= 0x00000003;
18584 L4_MABX_B.SFunction1_o2_kj = ((real_T) CAN_Sgn.UnsignedSgn);
18585 }
18586 }
18587 } else {
18588 /* set RX status to 0 because no new message has arrived */
18589 L4_MABX_B.SFunction1_o3_ed = 0.0;
18590 }
18591 }
18592 }
18593
18594 /* End of Outputs for SubSystem: '<S610>/CAN_TYPE1_RX_M1_C1' */
18595
18596 /* RelationalOperator: '<S618>/Operator' incorporates:
18597 * Constant: '<S448>/Constant'
18598 * Constant: '<S613>/Constant1'
18599 */
18600 L4_MABX_B.Operator_m2 = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18601 L4_MABX_P.Constant1_Value_ms);
18602
18603 /* Outputs for Enabled SubSystem: '<S611>/CAN_TYPE1_RX_M1_C2' incorporates:
18604 * EnablePort: '<S615>/Enable'
18605 */
18606 if (L4_MABX_B.Operator_m2) {
18607 /* S-Function (rti_commonblock): '<S615>/S-Function1' */
18608 /* This comment workarounds a code generation problem */
18609
18610 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18611 {
18612 UInt32 *CAN_Msg;
18613 static dsfloat time_old = 0.0;
18614
18615 /* Read status and timestamp info (previous message) */
18616 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].timestamp !=
18617 time_old) {
18618 /* ... save timestamp info for the calculation of the RX status
18619 during the consecutive sample hit*/
18620 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].
18621 timestamp;
18622
18623 /* ... set the processed flag to one */
18624 L4_MABX_B.SFunction1_o3_gu = 1.0;
18625 L4_MABX_B.SFunction1_o4_aj = (real_T)
18626 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].timestamp;
18627 L4_MABX_B.SFunction1_o5_jm = (real_T)
18628 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].deltatime;
18629 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].data;
18630
18631 /* Decode CAN message */
18632 {
18633 {
18634 rtican_Signal_t CAN_Sgn;
18635
18636 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18637 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18638 CAN_Sgn.UnsignedSgn &= 0x00000003;
18639 L4_MABX_B.SFunction1_o1_le = ((real_T) CAN_Sgn.UnsignedSgn);
18640
18641 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18642 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18643 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18644 CAN_Sgn.UnsignedSgn &= 0x00000003;
18645 L4_MABX_B.SFunction1_o2_hv = ((real_T) CAN_Sgn.UnsignedSgn);
18646 }
18647 }
18648 } else {
18649 /* set RX status to 0 because no new message has arrived */
18650 L4_MABX_B.SFunction1_o3_gu = 0.0;
18651 }
18652 }
18653 }
18654
18655 /* End of Outputs for SubSystem: '<S611>/CAN_TYPE1_RX_M1_C2' */
18656
18657 /* RelationalOperator: '<S619>/Operator' incorporates:
18658 * Constant: '<S448>/Constant'
18659 * Constant: '<S613>/Constant2'
18660 */
18661 L4_MABX_B.Operator_br = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18662 L4_MABX_P.Constant2_Value_e0);
18663
18664 /* Outputs for Enabled SubSystem: '<S612>/CAN_TYPE1_RX_M2_C1' incorporates:
18665 * EnablePort: '<S616>/Enable'
18666 */
18667 if (L4_MABX_B.Operator_br) {
18668 /* S-Function (rti_commonblock): '<S616>/S-Function1' */
18669 /* This comment workarounds a code generation problem */
18670
18671 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18672 {
18673 UInt32 *CAN_Msg;
18674 static dsfloat time_old = 0.0;
18675
18676 /* Read status and timestamp info (previous message) */
18677 if (can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].timestamp !=
18678 time_old) {
18679 /* ... save timestamp info for the calculation of the RX status
18680 during the consecutive sample hit*/
18681 time_old = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].
18682 timestamp;
18683
18684 /* ... set the processed flag to one */
18685 L4_MABX_B.SFunction1_o3_p = 1.0;
18686 L4_MABX_B.SFunction1_o4_jl = (real_T)
18687 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].timestamp;
18688 L4_MABX_B.SFunction1_o5_ez = (real_T)
18689 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].deltatime;
18690 CAN_Msg = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].data;
18691
18692 /* Decode CAN message */
18693 {
18694 {
18695 rtican_Signal_t CAN_Sgn;
18696
18697 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18698 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18699 CAN_Sgn.UnsignedSgn &= 0x00000003;
18700 L4_MABX_B.SFunction1_o1_mx = ((real_T) CAN_Sgn.UnsignedSgn);
18701
18702 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18703 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18704 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18705 CAN_Sgn.UnsignedSgn &= 0x00000003;
18706 L4_MABX_B.SFunction1_o2_f1 = ((real_T) CAN_Sgn.UnsignedSgn);
18707 }
18708 }
18709 } else {
18710 /* set RX status to 0 because no new message has arrived */
18711 L4_MABX_B.SFunction1_o3_p = 0.0;
18712 }
18713 }
18714 }
18715
18716 /* End of Outputs for SubSystem: '<S612>/CAN_TYPE1_RX_M2_C1' */
18717
18718 /* DataTypeConversion: '<S612>/Data Type Conversion' */
18719 PositionFinalLimited = L4_MABX_B.SFunction1_o1_mx;
18720 if (PositionFinalLimited < 256.0) {
18721 if (PositionFinalLimited >= 0.0) {
18722 starting_index = (uint8_T)PositionFinalLimited;
18723 } else {
18724 starting_index = 0U;
18725 }
18726 } else {
18727 starting_index = MAX_uint8_T;
18728 }
18729
18730 L4_MABX_B.DataTypeConversion_il = starting_index;
18731
18732 /* End of DataTypeConversion: '<S612>/Data Type Conversion' */
18733
18734 /* DataTypeConversion: '<S612>/Data Type Conversion2' */
18735 L4_MABX_B.EPBPCMInhibitStatusFeedback = (ENUM_XPR_FEEDBACK_T)
18736 L4_MABX_B.DataTypeConversion_il;
18737
18738 /* MultiPortSwitch: '<S448>/Multiport_Switch' incorporates:
18739 * Constant: '<S448>/Constant'
18740 */
18741 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18742 case ENUM_CAN_RX_T_RX_CAN_1:
18743 /* DataTypeConversion: '<S610>/Data Type Conversion' */
18744 PositionFinalLimited = L4_MABX_B.SFunction1_o1_pg;
18745 if (PositionFinalLimited < 256.0) {
18746 if (PositionFinalLimited >= 0.0) {
18747 starting_index = (uint8_T)PositionFinalLimited;
18748 } else {
18749 starting_index = 0U;
18750 }
18751 } else {
18752 starting_index = MAX_uint8_T;
18753 }
18754
18755 L4_MABX_B.DataTypeConversion_i2 = starting_index;
18756
18757 /* End of DataTypeConversion: '<S610>/Data Type Conversion' */
18758
18759 /* DataTypeConversion: '<S610>/Data Type Conversion2' */
18760 L4_MABX_B.EPBPCMInhibitStatusFeedback_h = (ENUM_XPR_FEEDBACK_T)
18761 L4_MABX_B.DataTypeConversion_i2;
18762 L4_MABX_B.EPBPCMInhibitStatusFeedback_d =
18763 L4_MABX_B.EPBPCMInhibitStatusFeedback_h;
18764 break;
18765
18766 case ENUM_CAN_RX_T_RX_CAN_2:
18767 /* DataTypeConversion: '<S611>/Data Type Conversion' */
18768 PositionFinalLimited = L4_MABX_B.SFunction1_o1_le;
18769 if (PositionFinalLimited < 256.0) {
18770 if (PositionFinalLimited >= 0.0) {
18771 starting_index = (uint8_T)PositionFinalLimited;
18772 } else {
18773 starting_index = 0U;
18774 }
18775 } else {
18776 starting_index = MAX_uint8_T;
18777 }
18778
18779 L4_MABX_B.DataTypeConversion_c5 = starting_index;
18780
18781 /* End of DataTypeConversion: '<S611>/Data Type Conversion' */
18782
18783 /* DataTypeConversion: '<S611>/Data Type Conversion2' */
18784 L4_MABX_B.EPBPCMInhibitStatusFeedback_m = (ENUM_XPR_FEEDBACK_T)
18785 L4_MABX_B.DataTypeConversion_c5;
18786 L4_MABX_B.EPBPCMInhibitStatusFeedback_d =
18787 L4_MABX_B.EPBPCMInhibitStatusFeedback_m;
18788 break;
18789
18790 case ENUM_CAN_RX_T_RX_CAN_3:
18791 L4_MABX_B.EPBPCMInhibitStatusFeedback_d =
18792 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18793 break;
18794
18795 case ENUM_CAN_RX_T_RX_CAN_4:
18796 L4_MABX_B.EPBPCMInhibitStatusFeedback_d =
18797 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18798 break;
18799
18800 case ENUM_CAN_RX_T_RX_CAN_5:
18801 L4_MABX_B.EPBPCMInhibitStatusFeedback_d =
18802 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18803 break;
18804
18805 case ENUM_CAN_RX_T_RX_CAN_6:
18806 L4_MABX_B.EPBPCMInhibitStatusFeedback_d =
18807 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18808 break;
18809
18810 default:
18811 L4_MABX_B.EPBPCMInhibitStatusFeedback_d =
18812 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18813 break;
18814 }
18815
18816 /* DataTypeConversion: '<S612>/Data Type Conversion1' */
18817 PositionFinalLimited = L4_MABX_B.SFunction1_o2_f1;
18818 if (PositionFinalLimited < 256.0) {
18819 if (PositionFinalLimited >= 0.0) {
18820 starting_index = (uint8_T)PositionFinalLimited;
18821 } else {
18822 starting_index = 0U;
18823 }
18824 } else {
18825 starting_index = MAX_uint8_T;
18826 }
18827
18828 L4_MABX_B.DataTypeConversion1_m3 = starting_index;
18829
18830 /* End of DataTypeConversion: '<S612>/Data Type Conversion1' */
18831
18832 /* DataTypeConversion: '<S612>/Data Type Conversion3' */
18833 L4_MABX_B.EPBPCMManualStatusFeedback = (ENUM_XPR_FEEDBACK_T)
18834 L4_MABX_B.DataTypeConversion1_m3;
18835
18836 /* MultiPortSwitch: '<S448>/Multiport_Switch' incorporates:
18837 * Constant: '<S448>/Constant'
18838 */
18839 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18840 case ENUM_CAN_RX_T_RX_CAN_1:
18841 /* DataTypeConversion: '<S610>/Data Type Conversion1' */
18842 PositionFinalLimited = L4_MABX_B.SFunction1_o2_kj;
18843 if (PositionFinalLimited < 256.0) {
18844 if (PositionFinalLimited >= 0.0) {
18845 starting_index = (uint8_T)PositionFinalLimited;
18846 } else {
18847 starting_index = 0U;
18848 }
18849 } else {
18850 starting_index = MAX_uint8_T;
18851 }
18852
18853 L4_MABX_B.DataTypeConversion1_bz = starting_index;
18854
18855 /* End of DataTypeConversion: '<S610>/Data Type Conversion1' */
18856
18857 /* DataTypeConversion: '<S610>/Data Type Conversion3' */
18858 L4_MABX_B.EPBPCMManualStatusFeedback_p = (ENUM_XPR_FEEDBACK_T)
18859 L4_MABX_B.DataTypeConversion1_bz;
18860 L4_MABX_B.EPBPCMManualStatusFeedback_o =
18861 L4_MABX_B.EPBPCMManualStatusFeedback_p;
18862 break;
18863
18864 case ENUM_CAN_RX_T_RX_CAN_2:
18865 /* DataTypeConversion: '<S611>/Data Type Conversion1' */
18866 PositionFinalLimited = L4_MABX_B.SFunction1_o2_hv;
18867 if (PositionFinalLimited < 256.0) {
18868 if (PositionFinalLimited >= 0.0) {
18869 starting_index = (uint8_T)PositionFinalLimited;
18870 } else {
18871 starting_index = 0U;
18872 }
18873 } else {
18874 starting_index = MAX_uint8_T;
18875 }
18876
18877 L4_MABX_B.DataTypeConversion1_cp = starting_index;
18878
18879 /* End of DataTypeConversion: '<S611>/Data Type Conversion1' */
18880
18881 /* DataTypeConversion: '<S611>/Data Type Conversion3' */
18882 L4_MABX_B.EPBPCMManualStatusFeedback_i = (ENUM_XPR_FEEDBACK_T)
18883 L4_MABX_B.DataTypeConversion1_cp;
18884 L4_MABX_B.EPBPCMManualStatusFeedback_o =
18885 L4_MABX_B.EPBPCMManualStatusFeedback_i;
18886 break;
18887
18888 case ENUM_CAN_RX_T_RX_CAN_3:
18889 L4_MABX_B.EPBPCMManualStatusFeedback_o =
18890 L4_MABX_B.EPBPCMManualStatusFeedback;
18891 break;
18892
18893 case ENUM_CAN_RX_T_RX_CAN_4:
18894 L4_MABX_B.EPBPCMManualStatusFeedback_o =
18895 L4_MABX_B.EPBPCMManualStatusFeedback;
18896 break;
18897
18898 case ENUM_CAN_RX_T_RX_CAN_5:
18899 L4_MABX_B.EPBPCMManualStatusFeedback_o =
18900 L4_MABX_B.EPBPCMManualStatusFeedback;
18901 break;
18902
18903 case ENUM_CAN_RX_T_RX_CAN_6:
18904 L4_MABX_B.EPBPCMManualStatusFeedback_o =
18905 L4_MABX_B.EPBPCMManualStatusFeedback;
18906 break;
18907
18908 default:
18909 L4_MABX_B.EPBPCMManualStatusFeedback_o =
18910 L4_MABX_B.EPBPCMManualStatusFeedback;
18911 break;
18912 }
18913
18914 /* DataTypeConversion: '<S612>/Data Type Conversion8' */
18915 L4_MABX_B.RX_status_fn = (L4_MABX_B.SFunction1_o3_p != 0.0);
18916
18917 /* MultiPortSwitch: '<S448>/Multiport_Switch' incorporates:
18918 * Constant: '<S448>/Constant'
18919 */
18920 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18921 case ENUM_CAN_RX_T_RX_CAN_1:
18922 /* DataTypeConversion: '<S610>/Data Type Conversion8' */
18923 L4_MABX_B.RX_status_aw = (L4_MABX_B.SFunction1_o3_ed != 0.0);
18924 L4_MABX_B.RX_status_eg = L4_MABX_B.RX_status_aw;
18925 break;
18926
18927 case ENUM_CAN_RX_T_RX_CAN_2:
18928 /* DataTypeConversion: '<S611>/Data Type Conversion8' */
18929 L4_MABX_B.RX_status_gs = (L4_MABX_B.SFunction1_o3_gu != 0.0);
18930 L4_MABX_B.RX_status_eg = L4_MABX_B.RX_status_gs;
18931 break;
18932
18933 case ENUM_CAN_RX_T_RX_CAN_3:
18934 L4_MABX_B.RX_status_eg = L4_MABX_B.RX_status_fn;
18935 break;
18936
18937 case ENUM_CAN_RX_T_RX_CAN_4:
18938 L4_MABX_B.RX_status_eg = L4_MABX_B.RX_status_fn;
18939 break;
18940
18941 case ENUM_CAN_RX_T_RX_CAN_5:
18942 L4_MABX_B.RX_status_eg = L4_MABX_B.RX_status_fn;
18943 break;
18944
18945 case ENUM_CAN_RX_T_RX_CAN_6:
18946 L4_MABX_B.RX_status_eg = L4_MABX_B.RX_status_fn;
18947 break;
18948
18949 default:
18950 L4_MABX_B.RX_status_eg = L4_MABX_B.RX_status_fn;
18951 break;
18952 }
18953
18954 /* DataTypeConversion: '<S612>/Data Type Conversion9' */
18955 L4_MABX_B.RX_time_iv = L4_MABX_B.SFunction1_o4_jl;
18956
18957 /* MultiPortSwitch: '<S448>/Multiport_Switch' incorporates:
18958 * Constant: '<S448>/Constant'
18959 */
18960 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18961 case ENUM_CAN_RX_T_RX_CAN_1:
18962 /* DataTypeConversion: '<S610>/Data Type Conversion9' */
18963 L4_MABX_B.RX_time_oi = L4_MABX_B.SFunction1_o4_cs;
18964 L4_MABX_B.RX_time_g2 = L4_MABX_B.RX_time_oi;
18965 break;
18966
18967 case ENUM_CAN_RX_T_RX_CAN_2:
18968 /* DataTypeConversion: '<S611>/Data Type Conversion9' */
18969 L4_MABX_B.RX_time_bf = L4_MABX_B.SFunction1_o4_aj;
18970 L4_MABX_B.RX_time_g2 = L4_MABX_B.RX_time_bf;
18971 break;
18972
18973 case ENUM_CAN_RX_T_RX_CAN_3:
18974 L4_MABX_B.RX_time_g2 = L4_MABX_B.RX_time_iv;
18975 break;
18976
18977 case ENUM_CAN_RX_T_RX_CAN_4:
18978 L4_MABX_B.RX_time_g2 = L4_MABX_B.RX_time_iv;
18979 break;
18980
18981 case ENUM_CAN_RX_T_RX_CAN_5:
18982 L4_MABX_B.RX_time_g2 = L4_MABX_B.RX_time_iv;
18983 break;
18984
18985 case ENUM_CAN_RX_T_RX_CAN_6:
18986 L4_MABX_B.RX_time_g2 = L4_MABX_B.RX_time_iv;
18987 break;
18988
18989 default:
18990 L4_MABX_B.RX_time_g2 = L4_MABX_B.RX_time_iv;
18991 break;
18992 }
18993
18994 /* DataTypeConversion: '<S612>/Data Type Conversion10' */
18995 L4_MABX_B.RX_delta_time_pu = L4_MABX_B.SFunction1_o5_ez;
18996
18997 /* MultiPortSwitch: '<S448>/Multiport_Switch' incorporates:
18998 * Constant: '<S448>/Constant'
18999 */
19000 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
19001 case ENUM_CAN_RX_T_RX_CAN_1:
19002 /* DataTypeConversion: '<S610>/Data Type Conversion10' */
19003 L4_MABX_B.RX_delta_time_bs = L4_MABX_B.SFunction1_o5_pf;
19004 L4_MABX_B.RX_delta_time_kh = L4_MABX_B.RX_delta_time_bs;
19005 break;
19006
19007 case ENUM_CAN_RX_T_RX_CAN_2:
19008 /* DataTypeConversion: '<S611>/Data Type Conversion10' */
19009 L4_MABX_B.RX_delta_time_cy = L4_MABX_B.SFunction1_o5_jm;
19010 L4_MABX_B.RX_delta_time_kh = L4_MABX_B.RX_delta_time_cy;
19011 break;
19012
19013 case ENUM_CAN_RX_T_RX_CAN_3:
19014 L4_MABX_B.RX_delta_time_kh = L4_MABX_B.RX_delta_time_pu;
19015 break;
19016
19017 case ENUM_CAN_RX_T_RX_CAN_4:
19018 L4_MABX_B.RX_delta_time_kh = L4_MABX_B.RX_delta_time_pu;
19019 break;
19020
19021 case ENUM_CAN_RX_T_RX_CAN_5:
19022 L4_MABX_B.RX_delta_time_kh = L4_MABX_B.RX_delta_time_pu;
19023 break;
19024
19025 case ENUM_CAN_RX_T_RX_CAN_6:
19026 L4_MABX_B.RX_delta_time_kh = L4_MABX_B.RX_delta_time_pu;
19027 break;
19028
19029 default:
19030 L4_MABX_B.RX_delta_time_kh = L4_MABX_B.RX_delta_time_pu;
19031 break;
19032 }
19033
19034 /* RelationalOperator: '<S620>/Operator' incorporates:
19035 * Constant: '<S448>/Constant'
19036 * Constant: '<S613>/Constant3'
19037 */
19038 L4_MABX_B.Operator_arr = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
19039 L4_MABX_P.Constant3_Value_e);
19040
19041 /* RelationalOperator: '<S621>/Operator' incorporates:
19042 * Constant: '<S448>/Constant'
19043 * Constant: '<S613>/Constant4'
19044 */
19045 L4_MABX_B.Operator_owh = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
19046 L4_MABX_P.Constant4_Value_lp);
19047
19048 /* RelationalOperator: '<S622>/Operator' incorporates:
19049 * Constant: '<S448>/Constant'
19050 * Constant: '<S613>/Constant5'
19051 */
19052 L4_MABX_B.Operator_n0 = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
19053 L4_MABX_P.Constant5_Value_h);
19054
19055 /* Outputs for Enabled SubSystem: '<S623>/PX2_LaneEdgeLeft' incorporates:
19056 * EnablePort: '<S624>/Enable'
19057 */
19058 /* Constant: '<S449>/Constant' */
19059 if (L4_MABX_P.Constant_Value_h2) {
19060 /* S-Function (rti_commonblock): '<S624>/S-Function1' */
19061 /* This comment workarounds a code generation problem */
19062
19063 /* dSPACE RTICAN RX Message Block: "PX2_LaneEdgeLeft" Id:770 */
19064 {
19065 UInt32 *CAN_Msg;
19066 static dsfloat time_old = 0.0;
19067
19068 /* Read status and timestamp info (previous message) */
19069 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp !=
19070 time_old) {
19071 /* ... save timestamp info for the calculation of the RX status
19072 during the consecutive sample hit*/
19073 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp;
19074
19075 /* ... set the processed flag to one */
19076 L4_MABX_B.SFunction1_o4_bv = 1.0;
19077 L4_MABX_B.SFunction1_o5_b = (real_T)
19078 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp;
19079 L4_MABX_B.SFunction1_o6_d = (real_T)
19080 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].deltatime;
19081 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].data;
19082
19083 /* Decode CAN message */
19084 {
19085 {
19086 rtican_Signal_t CAN_Sgn;
19087
19088 /* ...... "PX2_LaneEdgeLeftAngle" (0|16, standard signal, signed int, little endian) */
19089 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19090 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
19091 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19092 if (CAN_Sgn.SignedSgn >> 15) {
19093 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19094 }
19095
19096 L4_MABX_B.SFunction1_o1_e = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
19097
19098 /* ...... "PX2_LaneEdgeLeftNumPoints" (16|8, standard signal, unsigned int, little endian) */
19099 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19100 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19101 L4_MABX_B.SFunction1_o2_hn = ((real_T) CAN_Sgn.UnsignedSgn);
19102
19103 /* ...... "PX2_LaneEdgeLeftPosition" (24|16, standard signal, signed int, little endian) */
19104 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
19105 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
19106 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19107 if (CAN_Sgn.SignedSgn >> 15) {
19108 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19109 }
19110
19111 L4_MABX_B.SFunction1_o3_hl = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
19112 }
19113 }
19114 } else {
19115 /* set RX status to 0 because no new message has arrived */
19116 L4_MABX_B.SFunction1_o4_bv = 0.0;
19117 }
19118 }
19119 }
19120
19121 /* End of Outputs for SubSystem: '<S623>/PX2_LaneEdgeLeft' */
19122
19123 /* DataTypeConversion: '<S623>/Data Type Conversion1' */
19124 L4_MABX_B.RX_delta_time_fk = L4_MABX_B.SFunction1_o6_d;
19125
19126 /* DataTypeConversion: '<S623>/Data Type Conversion10' */
19127 L4_MABX_B.RX_delta_time_c = L4_MABX_B.SFunction1_o7_ls;
19128
19129 /* DataTypeConversion: '<S623>/Data Type Conversion2' */
19130 L4_MABX_B.RX_status_gu = (L4_MABX_B.SFunction1_o4_bv != 0.0);
19131
19132 /* DataTypeConversion: '<S623>/Data Type Conversion3' */
19133 L4_MABX_B.RX_time_fm = L4_MABX_B.SFunction1_o5_b;
19134
19135 /* Outputs for Enabled SubSystem: '<S623>/PX2_LaneEdgeRight' incorporates:
19136 * EnablePort: '<S625>/Enable'
19137 */
19138 /* Constant: '<S449>/Constant' */
19139 if (L4_MABX_P.Constant_Value_h2) {
19140 /* S-Function (rti_commonblock): '<S625>/S-Function1' */
19141 /* This comment workarounds a code generation problem */
19142
19143 /* dSPACE RTICAN RX Message Block: "PX2_LaneEdgeRight" Id:771 */
19144 {
19145 UInt32 *CAN_Msg;
19146 static dsfloat time_old = 0.0;
19147
19148 /* Read status and timestamp info (previous message) */
19149 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp !=
19150 time_old) {
19151 /* ... save timestamp info for the calculation of the RX status
19152 during the consecutive sample hit*/
19153 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp;
19154
19155 /* ... set the processed flag to one */
19156 L4_MABX_B.SFunction1_o4_kj = 1.0;
19157 L4_MABX_B.SFunction1_o5_d = (real_T)
19158 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp;
19159 L4_MABX_B.SFunction1_o6_g = (real_T)
19160 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].deltatime;
19161 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].data;
19162
19163 /* Decode CAN message */
19164 {
19165 {
19166 rtican_Signal_t CAN_Sgn;
19167
19168 /* ...... "PX2_LaneEdgeRightAngle" (0|16, standard signal, signed int, little endian) */
19169 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19170 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
19171 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19172 if (CAN_Sgn.SignedSgn >> 15) {
19173 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19174 }
19175
19176 L4_MABX_B.SFunction1_o1_l3 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
19177
19178 /* ...... "PX2_LaneEdgeRightNumPoints" (16|8, standard signal, unsigned int, little endian) */
19179 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19180 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19181 L4_MABX_B.SFunction1_o2_it = ((real_T) CAN_Sgn.UnsignedSgn);
19182
19183 /* ...... "PX2_LaneEdgeRightPosition" (24|16, standard signal, signed int, little endian) */
19184 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
19185 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
19186 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19187 if (CAN_Sgn.SignedSgn >> 15) {
19188 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19189 }
19190
19191 L4_MABX_B.SFunction1_o3_f4 = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
19192 }
19193 }
19194 } else {
19195 /* set RX status to 0 because no new message has arrived */
19196 L4_MABX_B.SFunction1_o4_kj = 0.0;
19197 }
19198 }
19199 }
19200
19201 /* End of Outputs for SubSystem: '<S623>/PX2_LaneEdgeRight' */
19202
19203 /* DataTypeConversion: '<S623>/Data Type Conversion4' */
19204 L4_MABX_B.RX_delta_time_b1 = L4_MABX_B.SFunction1_o6_g;
19205
19206 /* DataTypeConversion: '<S623>/Data Type Conversion5' */
19207 L4_MABX_B.RX_status_do = (L4_MABX_B.SFunction1_o4_kj != 0.0);
19208
19209 /* DataTypeConversion: '<S623>/Data Type Conversion6' */
19210 L4_MABX_B.RX_time_dk = L4_MABX_B.SFunction1_o5_d;
19211
19212 /* DataTypeConversion: '<S623>/Data Type Conversion8' */
19213 L4_MABX_B.RX_status_hn = (L4_MABX_B.SFunction1_o5_l != 0.0);
19214
19215 /* DataTypeConversion: '<S623>/Data Type Conversion9' */
19216 L4_MABX_B.RX_time_fq = L4_MABX_B.SFunction1_o6_fd;
19217
19218 /* Switch: '<S627>/Switch' */
19219 if (L4_MABX_B.If_Then_Else.Switch) {
19220 /* DataTypeConversion: '<S627>/Data Type Conversion8' */
19221 L4_MABX_B.RX_status_k = (L4_MABX_B.SFunction1_o3_cb != 0.0);
19222 L4_MABX_B.RX_status_dx = L4_MABX_B.RX_status_k;
19223
19224 /* DataTypeConversion: '<S627>/Data Type Conversion9' */
19225 L4_MABX_B.RX_time_k = L4_MABX_B.SFunction1_o4_b5;
19226 L4_MABX_B.RX_time_a0 = L4_MABX_B.RX_time_k;
19227
19228 /* DataTypeConversion: '<S627>/Data Type Conversion10' */
19229 L4_MABX_B.RX_delta_time_n1 = L4_MABX_B.SFunction1_o5_e;
19230 L4_MABX_B.RX_delta_time_hm = L4_MABX_B.RX_delta_time_n1;
19231 } else {
19232 /* DataTypeConversion: '<S627>/Data Type Conversion3' */
19233 L4_MABX_B.RX_status_b = (L4_MABX_B.SFunction1_o3_og != 0.0);
19234 L4_MABX_B.RX_status_dx = L4_MABX_B.RX_status_b;
19235
19236 /* DataTypeConversion: '<S627>/Data Type Conversion2' */
19237 L4_MABX_B.RX_time_ei = L4_MABX_B.SFunction1_o4_p0;
19238 L4_MABX_B.RX_time_a0 = L4_MABX_B.RX_time_ei;
19239
19240 /* DataTypeConversion: '<S627>/Data Type Conversion1' */
19241 L4_MABX_B.RX_delta_time_jq = L4_MABX_B.SFunction1_o5_p;
19242 L4_MABX_B.RX_delta_time_hm = L4_MABX_B.RX_delta_time_jq;
19243 }
19244
19245 /* DataTypeConversion: '<S630>/Data Type Conversion1' */
19246 L4_MABX_B.XPR1ControlStatus = L4_MABX_B.SFunction1_o6_fc;
19247
19248 /* DataTypeConversion: '<S630>/Data Type Conversion10' */
19249 L4_MABX_B.RX_delta_time_e2 = L4_MABX_B.SFunction1_o13_e;
19250
19251 /* DataTypeConversion: '<S630>/Data Type Conversion2' */
19252 L4_MABX_B.XPR2ControlStatus = L4_MABX_B.SFunction1_o7_jt;
19253
19254 /* DataTypeConversion: '<S630>/Data Type Conversion3' */
19255 L4_MABX_B.XPR3ControlStatus = L4_MABX_B.SFunction1_o8_j;
19256
19257 /* DataTypeConversion: '<S630>/Data Type Conversion8' */
19258 L4_MABX_B.RX_status_c0 = (L4_MABX_B.SFunction1_o11_a != 0.0);
19259
19260 /* DataTypeConversion: '<S630>/Data Type Conversion9' */
19261 L4_MABX_B.RX_time_i0 = L4_MABX_B.SFunction1_o12_p;
19262
19263 /* DataTypeConversion: '<S632>/Data Type Conversion10' */
19264 L4_MABX_B.RX_delta_time_hv = L4_MABX_B.SFunction1_o10_i;
19265
19266 /* DataTypeConversion: '<S632>/Data Type Conversion8' */
19267 L4_MABX_B.RX_status_hlk = (L4_MABX_B.SFunction1_o8_e != 0.0);
19268
19269 /* DataTypeConversion: '<S632>/Data Type Conversion9' */
19270 L4_MABX_B.RX_time_oa = L4_MABX_B.SFunction1_o9_e;
19271
19272 /* Outputs for Enabled SubSystem: '<S634>/PX2_MapLaneEgoLeft' incorporates:
19273 * EnablePort: '<S635>/Enable'
19274 */
19275 /* Constant: '<S453>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
19276 if (L4_MABX_P.CAN_RXEnable_PX2_MapLaneEgoLeft) {
19277 /* S-Function (rti_commonblock): '<S635>/S-Function1' */
19278 /* This comment workarounds a code generation problem */
19279
19280 /* dSPACE RTICAN RX Message Block: "PX2_MapLaneEgoLeft" Id:1542 */
19281 {
19282 UInt32 *CAN_Msg;
19283 static dsfloat time_old = 0.0;
19284
19285 /* Read status and timestamp info (previous message) */
19286 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp !=
19287 time_old) {
19288 /* ... save timestamp info for the calculation of the RX status
19289 during the consecutive sample hit*/
19290 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp;
19291
19292 /* ... set the processed flag to one */
19293 L4_MABX_B.SFunction1_o7_lx = 1.0;
19294 L4_MABX_B.SFunction1_o8_h = (real_T)
19295 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp;
19296 L4_MABX_B.SFunction1_o9_n5 = (real_T)
19297 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].deltatime;
19298 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].data;
19299
19300 /* Decode CAN message */
19301 {
19302 {
19303 rtican_Signal_t CAN_Sgn;
19304
19305 /* ...... "PX2_MapLaneNearPos" (0|16, standard signal, signed int, little endian) */
19306 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19307 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
19308 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19309 if (CAN_Sgn.SignedSgn >> 15) {
19310 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19311 }
19312
19313 L4_MABX_B.SFunction1_o1_d1 = 0.00390625 * ( ((real_T)
19314 CAN_Sgn.SignedSgn) );
19315
19316 /* ...... "PX2_MapLaneMidPos" (16|16, standard signal, signed int, little endian) */
19317 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19318 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19319 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19320 if (CAN_Sgn.SignedSgn >> 15) {
19321 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19322 }
19323
19324 L4_MABX_B.SFunction1_o2_kw = 0.00390625 * ( ((real_T)
19325 CAN_Sgn.SignedSgn) );
19326
19327 /* ...... "PX2_MapLaneFarPos" (32|16, standard signal, signed int, little endian) */
19328 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19329 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19330 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19331 if (CAN_Sgn.SignedSgn >> 15) {
19332 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19333 }
19334
19335 L4_MABX_B.SFunction1_o3_bo = 0.00390625 * ( ((real_T)
19336 CAN_Sgn.SignedSgn) );
19337
19338 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
19339 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19340 CAN_Sgn.UnsignedSgn &= 0x00000003;
19341 L4_MABX_B.SFunction1_o4_it = ((real_T) CAN_Sgn.UnsignedSgn);
19342
19343 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
19344 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19345 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
19346 CAN_Sgn.UnsignedSgn &= 0x00000003;
19347 L4_MABX_B.SFunction1_o5_kh = ((real_T) CAN_Sgn.UnsignedSgn);
19348
19349 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
19350 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19351 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
19352 CAN_Sgn.UnsignedSgn &= 0x00000003;
19353 L4_MABX_B.SFunction1_o6_fz = ((real_T) CAN_Sgn.UnsignedSgn);
19354 }
19355 }
19356 } else {
19357 /* set RX status to 0 because no new message has arrived */
19358 L4_MABX_B.SFunction1_o7_lx = 0.0;
19359 }
19360 }
19361 }
19362
19363 /* End of Constant: '<S453>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
19364 /* End of Outputs for SubSystem: '<S634>/PX2_MapLaneEgoLeft' */
19365
19366 /* DataTypeConversion: '<S634>/Data Type Conversion10' */
19367 L4_MABX_B.RX_delta_time_pw = L4_MABX_B.SFunction1_o9_n5;
19368
19369 /* DataTypeConversion: '<S634>/Data Type Conversion8' */
19370 L4_MABX_B.RX_status_af = (L4_MABX_B.SFunction1_o7_lx != 0.0);
19371
19372 /* DataTypeConversion: '<S634>/Data Type Conversion9' */
19373 L4_MABX_B.RX_time_pv = L4_MABX_B.SFunction1_o8_h;
19374
19375 /* Outputs for Enabled SubSystem: '<S636>/PX2_MapLaneEgoRight' incorporates:
19376 * EnablePort: '<S637>/Enable'
19377 */
19378 /* Constant: '<S454>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
19379 if (L4_MABX_P.CAN_RXEnable_PX2_MapLaneEgoLe_n) {
19380 /* S-Function (rti_commonblock): '<S637>/S-Function1' */
19381 /* This comment workarounds a code generation problem */
19382
19383 /* dSPACE RTICAN RX Message Block: "PX2_MapLaneEgoRight" Id:1541 */
19384 {
19385 UInt32 *CAN_Msg;
19386 static dsfloat time_old = 0.0;
19387
19388 /* Read status and timestamp info (previous message) */
19389 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp !=
19390 time_old) {
19391 /* ... save timestamp info for the calculation of the RX status
19392 during the consecutive sample hit*/
19393 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp;
19394
19395 /* ... set the processed flag to one */
19396 L4_MABX_B.SFunction1_o7_lm = 1.0;
19397 L4_MABX_B.SFunction1_o8_c = (real_T)
19398 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp;
19399 L4_MABX_B.SFunction1_o9_lz = (real_T)
19400 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].deltatime;
19401 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].data;
19402
19403 /* Decode CAN message */
19404 {
19405 {
19406 rtican_Signal_t CAN_Sgn;
19407
19408 /* ...... "PX2_MapLaneNearPos" (0|16, standard signal, signed int, little endian) */
19409 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19410 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
19411 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19412 if (CAN_Sgn.SignedSgn >> 15) {
19413 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19414 }
19415
19416 L4_MABX_B.SFunction1_o1_fb = 0.00390625 * ( ((real_T)
19417 CAN_Sgn.SignedSgn) );
19418
19419 /* ...... "PX2_MapLaneMidPos" (16|16, standard signal, signed int, little endian) */
19420 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19421 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19422 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19423 if (CAN_Sgn.SignedSgn >> 15) {
19424 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19425 }
19426
19427 L4_MABX_B.SFunction1_o2_ib = 0.00390625 * ( ((real_T)
19428 CAN_Sgn.SignedSgn) );
19429
19430 /* ...... "PX2_MapLaneFarPos" (32|16, standard signal, signed int, little endian) */
19431 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19432 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19433 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19434 if (CAN_Sgn.SignedSgn >> 15) {
19435 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19436 }
19437
19438 L4_MABX_B.SFunction1_o3_cd = 0.00390625 * ( ((real_T)
19439 CAN_Sgn.SignedSgn) );
19440
19441 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
19442 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19443 CAN_Sgn.UnsignedSgn &= 0x00000003;
19444 L4_MABX_B.SFunction1_o4_lt = ((real_T) CAN_Sgn.UnsignedSgn);
19445
19446 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
19447 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19448 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
19449 CAN_Sgn.UnsignedSgn &= 0x00000003;
19450 L4_MABX_B.SFunction1_o5_j = ((real_T) CAN_Sgn.UnsignedSgn);
19451
19452 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
19453 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19454 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
19455 CAN_Sgn.UnsignedSgn &= 0x00000003;
19456 L4_MABX_B.SFunction1_o6_l = ((real_T) CAN_Sgn.UnsignedSgn);
19457 }
19458 }
19459 } else {
19460 /* set RX status to 0 because no new message has arrived */
19461 L4_MABX_B.SFunction1_o7_lm = 0.0;
19462 }
19463 }
19464 }
19465
19466 /* End of Constant: '<S454>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
19467 /* End of Outputs for SubSystem: '<S636>/PX2_MapLaneEgoRight' */
19468
19469 /* DataTypeConversion: '<S636>/Data Type Conversion10' */
19470 L4_MABX_B.RX_delta_time_f5 = L4_MABX_B.SFunction1_o9_lz;
19471
19472 /* DataTypeConversion: '<S636>/Data Type Conversion8' */
19473 L4_MABX_B.RX_status_c0l = (L4_MABX_B.SFunction1_o7_lm != 0.0);
19474
19475 /* DataTypeConversion: '<S636>/Data Type Conversion9' */
19476 L4_MABX_B.RX_time_e3 = L4_MABX_B.SFunction1_o8_c;
19477
19478 /* Outputs for Enabled SubSystem: '<S638>/PX2_EgoLanePos' incorporates:
19479 * EnablePort: '<S639>/Enable'
19480 */
19481 /* Constant: '<S455>/Constant' */
19482 if (L4_MABX_P.Constant_Value_o1) {
19483 /* S-Function (rti_commonblock): '<S639>/S-Function1' */
19484 /* This comment workarounds a code generation problem */
19485
19486 /* dSPACE RTICAN RX Message Block: "PX2_EgoLanePos" Id:1540 */
19487 {
19488 UInt32 *CAN_Msg;
19489 static dsfloat time_old = 0.0;
19490
19491 /* Read status and timestamp info (previous message) */
19492 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp !=
19493 time_old) {
19494 /* ... save timestamp info for the calculation of the RX status
19495 during the consecutive sample hit*/
19496 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp;
19497
19498 /* ... set the processed flag to one */
19499 L4_MABX_B.SFunction1_o7_j = 1.0;
19500 L4_MABX_B.SFunction1_o8_f = (real_T)
19501 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp;
19502 L4_MABX_B.SFunction1_o9_n = (real_T)
19503 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].deltatime;
19504 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].data;
19505
19506 /* Decode CAN message */
19507 {
19508 {
19509 rtican_Signal_t CAN_Sgn;
19510
19511 /* ...... "PX2_EgoLaneNearPosErr" (0|16, standard signal, signed int, little endian) */
19512 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19513 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
19514 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19515 if (CAN_Sgn.SignedSgn >> 15) {
19516 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19517 }
19518
19519 L4_MABX_B.SFunction1_o1_pv = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19520
19521 /* ...... "PX2_EgoLaneMidPosErr" (16|16, standard signal, signed int, little endian) */
19522 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19523 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19524 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19525 if (CAN_Sgn.SignedSgn >> 15) {
19526 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19527 }
19528
19529 L4_MABX_B.SFunction1_o2_dx = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19530
19531 /* ...... "PX2_EgoLaneFarPosErr" (32|16, standard signal, signed int, little endian) */
19532 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19533 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19534 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19535 if (CAN_Sgn.SignedSgn >> 15) {
19536 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19537 }
19538
19539 L4_MABX_B.SFunction1_o3_lt = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19540
19541 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
19542 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19543 CAN_Sgn.UnsignedSgn &= 0x00000003;
19544 L4_MABX_B.SFunction1_o4_gk = ((real_T) CAN_Sgn.UnsignedSgn);
19545
19546 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
19547 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19548 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
19549 CAN_Sgn.UnsignedSgn &= 0x00000003;
19550 L4_MABX_B.SFunction1_o5_k = ((real_T) CAN_Sgn.UnsignedSgn);
19551
19552 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
19553 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19554 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
19555 CAN_Sgn.UnsignedSgn &= 0x00000003;
19556 L4_MABX_B.SFunction1_o6_a = ((real_T) CAN_Sgn.UnsignedSgn);
19557 }
19558 }
19559 } else {
19560 /* set RX status to 0 because no new message has arrived */
19561 L4_MABX_B.SFunction1_o7_j = 0.0;
19562 }
19563 }
19564 }
19565
19566 /* End of Constant: '<S455>/Constant' */
19567 /* End of Outputs for SubSystem: '<S638>/PX2_EgoLanePos' */
19568
19569 /* DataTypeConversion: '<S638>/Data Type Conversion10' */
19570 L4_MABX_B.RX_delta_time_by = L4_MABX_B.SFunction1_o9_n;
19571
19572 /* DataTypeConversion: '<S638>/Data Type Conversion8' */
19573 L4_MABX_B.RX_status_gg = (L4_MABX_B.SFunction1_o7_j != 0.0);
19574
19575 /* DataTypeConversion: '<S638>/Data Type Conversion9' */
19576 L4_MABX_B.RX_time_ed = L4_MABX_B.SFunction1_o8_f;
19577
19578 /* DataTypeConversion: '<S640>/Data Type Conversion10' */
19579 L4_MABX_B.RX_delta_time_o = L4_MABX_B.SFunction1_o7_k;
19580
19581 /* DataTypeConversion: '<S640>/Data Type Conversion9' */
19582 L4_MABX_B.RX_time_jk = L4_MABX_B.SFunction1_o6_f;
19583
19584 /* DataTypeConversion: '<S642>/Data Type Conversion10' */
19585 L4_MABX_B.RX_delta_time_ox = L4_MABX_B.SFunction1_o28;
19586
19587 /* DataTypeConversion: '<S642>/Data Type Conversion8' */
19588 L4_MABX_B.RX_status_oq = (L4_MABX_B.SFunction1_o26 != 0.0);
19589
19590 /* DataTypeConversion: '<S642>/Data Type Conversion9' */
19591 L4_MABX_B.RX_time_hs = L4_MABX_B.SFunction1_o27;
19592
19593 /* DataTypeConversion: '<S644>/Data Type Conversion10' */
19594 L4_MABX_B.RX_delta_time_n = L4_MABX_B.SFunction1_o10;
19595
19596 /* DataTypeConversion: '<S644>/Data Type Conversion8' */
19597 L4_MABX_B.RX_status_aa = (L4_MABX_B.SFunction1_o8_n != 0.0);
19598
19599 /* DataTypeConversion: '<S644>/Data Type Conversion9' */
19600 L4_MABX_B.RX_time_bp = L4_MABX_B.SFunction1_o9_l;
19601
19602 /* DataTypeConversion: '<S646>/Data Type Conversion10' */
19603 L4_MABX_B.RX_delta_time_kk = L4_MABX_B.SFunction1_o9;
19604
19605 /* DataTypeConversion: '<S646>/Data Type Conversion8' */
19606 L4_MABX_B.RX_status_dj = (L4_MABX_B.SFunction1_o7_m != 0.0);
19607
19608 /* DataTypeConversion: '<S646>/Data Type Conversion9' */
19609 L4_MABX_B.RX_time_ba = L4_MABX_B.SFunction1_o8_l;
19610
19611 /* Outputs for Enabled SubSystem: '<S648>/VEP1' incorporates:
19612 * EnablePort: '<S649>/Enable'
19613 */
19614 /* Constant: '<S460>/Constant' */
19615 if (L4_MABX_P.Constant_Value_da > 0.0) {
19616 /* S-Function (rti_commonblock): '<S649>/S-Function1' */
19617 /* This comment workarounds a code generation problem */
19618
19619 /* dSPACE RTICAN RX Message Block: "VEP1" Id:419362563 */
19620 {
19621 UInt32 *CAN_Msg;
19622 static dsfloat time_old = 0.0;
19623
19624 /* Read status and timestamp info (previous message) */
19625 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].timestamp !=
19626 time_old) {
19627 /* ... save timestamp info for the calculation of the RX status
19628 during the consecutive sample hit*/
19629 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].
19630 timestamp;
19631
19632 /* ... set the processed flag to one */
19633 L4_MABX_B.SFunction1_o6 = 1.0;
19634 L4_MABX_B.SFunction1_o7 = (real_T)
19635 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].timestamp;
19636 L4_MABX_B.SFunction1_o8 = (real_T)
19637 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].deltatime;
19638 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].data;
19639
19640 /* Decode CAN message */
19641 {
19642 {
19643 rtican_Signal_t CAN_Sgn;
19644
19645 /* ...... "NetBatteryCurrent" (0|8, standard signal, unsigned int, little endian) */
19646 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19647 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19648 L4_MABX_B.SFunction1_o1_ki = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
19649 );
19650
19651 /* ...... "AltCurrent" (8|8, standard signal, unsigned int, little endian) */
19652 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19653 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19654 L4_MABX_B.SFunction1_o2_k = ((real_T) CAN_Sgn.UnsignedSgn);
19655
19656 /* ...... "ChargingSystemPotential" (16|16, standard signal, unsigned int, little endian) */
19657 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19658 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19659 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19660 L4_MABX_B.SFunction1_o3_hx = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn)
19661 );
19662
19663 /* ...... "BatteryPotential_PowerInput1" (32|16, standard signal, unsigned int, little endian) */
19664 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19665 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19666 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19667 L4_MABX_B.SFunction1_o4_o = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
19668
19669 /* ...... "KeyswitchBatteryPotential" (48|16, standard signal, unsigned int, little endian) */
19670 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19671 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
19672 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19673 L4_MABX_B.SFunction1_o5 = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
19674 }
19675 }
19676 } else {
19677 /* set RX status to 0 because no new message has arrived */
19678 L4_MABX_B.SFunction1_o6 = 0.0;
19679 }
19680 }
19681 }
19682
19683 /* End of Constant: '<S460>/Constant' */
19684 /* End of Outputs for SubSystem: '<S648>/VEP1' */
19685
19686 /* DataTypeConversion: '<S648>/Data Type Conversion1' */
19687 L4_MABX_B.PitchAngleExRange_g = L4_MABX_B.SFunction1_o1_ki;
19688
19689 /* DataTypeConversion: '<S648>/Data Type Conversion10' */
19690 L4_MABX_B.RX_delta_time_lk = L4_MABX_B.SFunction1_o8;
19691
19692 /* DataTypeConversion: '<S648>/Data Type Conversion2' */
19693 L4_MABX_B.AltCurrent = L4_MABX_B.SFunction1_o2_k;
19694
19695 /* DataTypeConversion: '<S648>/Data Type Conversion3' */
19696 L4_MABX_B.ChargingSystemPotential = L4_MABX_B.SFunction1_o3_hx;
19697
19698 /* DataTypeConversion: '<S648>/Data Type Conversion4' */
19699 L4_MABX_B.BatteryPotential_PowerInput1 = L4_MABX_B.SFunction1_o4_o;
19700
19701 /* DataTypeConversion: '<S648>/Data Type Conversion5' */
19702 L4_MABX_B.KeyswitchBatteryPotential = L4_MABX_B.SFunction1_o5;
19703
19704 /* DataTypeConversion: '<S648>/Data Type Conversion8' */
19705 L4_MABX_B.RX_status_f0 = (L4_MABX_B.SFunction1_o6 != 0.0);
19706
19707 /* DataTypeConversion: '<S648>/Data Type Conversion9' */
19708 L4_MABX_B.RX_time_i0g = L4_MABX_B.SFunction1_o7;
19709
19710 /* RelationalOperator: '<S651>/Relational Operator2' incorporates:
19711 * Constant: '<S651>/TRUCK_166_VIN_CPV'
19712 */
19713 L4_MABX_B.RelationalOperator2[0] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[0] !=
19714 L4_MABX_B.DataTypeConversion_lt);
19715 L4_MABX_B.RelationalOperator2[1] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[1] !=
19716 L4_MABX_B.DataTypeConversion1_k3);
19717 L4_MABX_B.RelationalOperator2[2] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[2] !=
19718 L4_MABX_B.DataTypeConversion2_bj);
19719 L4_MABX_B.RelationalOperator2[3] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[3] !=
19720 L4_MABX_B.DataTypeConversion3_pj);
19721 L4_MABX_B.RelationalOperator2[4] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[4] !=
19722 L4_MABX_B.DataTypeConversion4_b5);
19723 L4_MABX_B.RelationalOperator2[5] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[5] !=
19724 L4_MABX_B.DataTypeConversion5_l);
19725 L4_MABX_B.RelationalOperator2[6] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[6] !=
19726 L4_MABX_B.DataTypeConversion6_i);
19727 L4_MABX_B.RelationalOperator2[7] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[7] !=
19728 L4_MABX_B.DataTypeConversion7_gf);
19729 L4_MABX_B.RelationalOperator2[8] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[8] !=
19730 L4_MABX_B.DataTypeConversion8_j);
19731 L4_MABX_B.RelationalOperator2[9] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[9] !=
19732 L4_MABX_B.DataTypeConversion9_a);
19733 L4_MABX_B.RelationalOperator2[10] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[10] !=
19734 L4_MABX_B.DataTypeConversion10_m);
19735 L4_MABX_B.RelationalOperator2[11] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[11] !=
19736 L4_MABX_B.DataTypeConversion11_o);
19737 L4_MABX_B.RelationalOperator2[12] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[12] !=
19738 L4_MABX_B.DataTypeConversion12);
19739 L4_MABX_B.RelationalOperator2[13] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[13] !=
19740 L4_MABX_B.DataTypeConversion14_p);
19741 L4_MABX_B.RelationalOperator2[14] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[14] !=
19742 L4_MABX_B.DataTypeConversion13_l);
19743 L4_MABX_B.RelationalOperator2[15] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[15] !=
19744 L4_MABX_B.DataTypeConversion15_k);
19745 L4_MABX_B.RelationalOperator2[16] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[16] !=
19746 L4_MABX_B.DataTypeConversion16_e);
19747
19748 /* Sum: '<S651>/Add1' */
19749 tmp = 0U;
19750 for (i = 0; i < 17; i++) {
19751 tmp += L4_MABX_B.RelationalOperator2[i];
19752 }
19753
19754 L4_MABX_B.Add1_a = (uint8_T)tmp;
19755
19756 /* End of Sum: '<S651>/Add1' */
19757
19758 /* RelationalOperator: '<S656>/Compare' incorporates:
19759 * Constant: '<S656>/Constant'
19760 */
19761 L4_MABX_B.Compare_m = (L4_MABX_B.Add1_a == L4_MABX_P.Constant_Value_ac);
19762
19763 /* UnitDelay: '<S651>/Unit_Delay2' */
19764 L4_MABX_B.Unit_Delay2_cw = L4_MABX_DW.Unit_Delay2_DSTATE_f;
19765
19766 /* Logic: '<S651>/Logical Operator1' */
19767 L4_MABX_B.LogicalOperator1_e = (L4_MABX_B.Unit_Delay2_cw &&
19768 L4_MABX_B.Compare_m);
19769
19770 /* Logic: '<S657>/Logical Operator2' */
19771 L4_MABX_B.LogicalOperator2_k = !L4_MABX_B.LogicalOperator1_p;
19772
19773 /* UnitDelay: '<S651>/Unit_Delay1' */
19774 L4_MABX_B.Unit_Delay1_c0 = L4_MABX_DW.Unit_Delay1_DSTATE_d;
19775
19776 /* Logic: '<S658>/Logical Operator3' */
19777 L4_MABX_B.LogicalOperator3_a = !L4_MABX_B.Unit_Delay1_c0;
19778
19779 /* UnitDelay: '<S658>/Unit_Delay' */
19780 L4_MABX_B.Unit_Delay_eb = L4_MABX_DW.Unit_Delay_DSTATE_en;
19781
19782 /* Logic: '<S658>/Logical Operator' */
19783 L4_MABX_B.LogicalOperator_e = (L4_MABX_B.LogicalOperator3_a &&
19784 L4_MABX_B.Unit_Delay_eb);
19785
19786 /* Logic: '<S658>/Logical Operator1' */
19787 L4_MABX_B.LogicalOperator1_m = (L4_MABX_B.LogicalOperator1_e ||
19788 L4_MABX_B.LogicalOperator_e);
19789
19790 /* Logic: '<S658>/Logical Operator2' */
19791 L4_MABX_B.LogicalOperator2_i = !L4_MABX_B.LogicalOperator1_m;
19792
19793 /* Constant: '<S417>/Constant2' */
19794 L4_MABX_B.PX2_HeartBeat = L4_MABX_P.Constant2_Value_az;
19795
19796 /* RelationalOperator: '<S695>/Operator' incorporates:
19797 * Constant: '<S471>/Constant1'
19798 */
19799 L4_MABX_B.Operator_mub = (L4_MABX_B.DataTypeConversion_b5[0] ==
19800 L4_MABX_P.Constant1_Value_oh);
19801
19802 /* Outputs for Enabled SubSystem: '<S471>/Decode_TPCM_CTS' incorporates:
19803 * EnablePort: '<S690>/Enable'
19804 */
19805 if (L4_MABX_B.Operator_mub) {
19806 /* SignalConversion: '<S707>/Signal Conversion' */
19807 L4_MABX_B.SPN2556_ControlByte_p = L4_MABX_B.DataTypeConversion_b5[0];
19808
19809 /* SignalConversion: '<S708>/Signal Conversion' */
19810 L4_MABX_B.SPN2561_NumberOfPacketsThatCanB = L4_MABX_B.DataTypeConversion_b5
19811 [1];
19812
19813 /* SignalConversion: '<S709>/Signal Conversion' */
19814 L4_MABX_B.SPN2562_NextPacketNumberToBeSen = L4_MABX_B.DataTypeConversion_b5
19815 [2];
19816
19817 /* DataTypeConversion: '<S710>/Data Type Conversion' */
19818 L4_MABX_B.DataTypeConversion_dd = L4_MABX_B.DataTypeConversion_b5[5];
19819
19820 /* DataTypeConversion: '<S710>/Data Type Conversion1' */
19821 L4_MABX_B.DataTypeConversion1_pm4 = L4_MABX_B.DataTypeConversion_b5[6];
19822
19823 /* DataTypeConversion: '<S710>/Data Type Conversion2' */
19824 L4_MABX_B.DataTypeConversion2_pk = L4_MABX_B.DataTypeConversion_b5[7];
19825
19826 /* ArithShift: '<S710>/Shift Arithmetic1' */
19827 L4_MABX_B.ShiftArithmetic1_a = L4_MABX_B.DataTypeConversion1_pm4 << 8;
19828
19829 /* ArithShift: '<S710>/Shift Arithmetic2' */
19830 L4_MABX_B.ShiftArithmetic2_n = L4_MABX_B.DataTypeConversion2_pk << 16;
19831
19832 /* S-Function (sfix_bitop): '<S711>/Operator' */
19833 L4_MABX_B.Operator_mu = L4_MABX_B.DataTypeConversion_dd |
19834 L4_MABX_B.ShiftArithmetic1_a | L4_MABX_B.ShiftArithmetic2_n;
19835
19836 /* DataTypeConversion: '<S711>/DataType' */
19837 L4_MABX_B.DataType_kx = L4_MABX_B.Operator_mu;
19838 }
19839
19840 /* End of Outputs for SubSystem: '<S471>/Decode_TPCM_CTS' */
19841
19842 /* RelationalOperator: '<S698>/Operator' incorporates:
19843 * Constant: '<S471>/Constant4'
19844 */
19845 L4_MABX_B.Operator_hzy = (L4_MABX_B.DataTypeConversion_b5[0] ==
19846 L4_MABX_P.Constant4_Value_kp);
19847
19848 /* Outputs for Enabled SubSystem: '<S471>/Decode_TPCM_ConnectionAbort' incorporates:
19849 * EnablePort: '<S691>/Enable'
19850 */
19851 if (L4_MABX_B.Operator_hzy) {
19852 /* SignalConversion: '<S713>/Signal Conversion' */
19853 L4_MABX_B.SPN2556_ControlByte_h = L4_MABX_B.DataTypeConversion_b5[0];
19854
19855 /* SignalConversion: '<S714>/Signal Conversion' */
19856 L4_MABX_B.SPN2570_ConnectionAbortReason = L4_MABX_B.DataTypeConversion_b5[1];
19857
19858 /* DataTypeConversion: '<S715>/Data Type Conversion' */
19859 L4_MABX_B.DataTypeConversion_lx = L4_MABX_B.DataTypeConversion_b5[5];
19860
19861 /* DataTypeConversion: '<S715>/Data Type Conversion1' */
19862 L4_MABX_B.DataTypeConversion1_kw = L4_MABX_B.DataTypeConversion_b5[6];
19863
19864 /* DataTypeConversion: '<S715>/Data Type Conversion2' */
19865 L4_MABX_B.DataTypeConversion2_no = L4_MABX_B.DataTypeConversion_b5[7];
19866
19867 /* ArithShift: '<S715>/Shift Arithmetic1' */
19868 L4_MABX_B.ShiftArithmetic1_ny = L4_MABX_B.DataTypeConversion1_kw << 8;
19869
19870 /* ArithShift: '<S715>/Shift Arithmetic2' */
19871 L4_MABX_B.ShiftArithmetic2_k = L4_MABX_B.DataTypeConversion2_no << 16;
19872
19873 /* S-Function (sfix_bitop): '<S716>/Operator' */
19874 L4_MABX_B.Operator_id = L4_MABX_B.DataTypeConversion_lx |
19875 L4_MABX_B.ShiftArithmetic1_ny | L4_MABX_B.ShiftArithmetic2_k;
19876
19877 /* DataTypeConversion: '<S716>/DataType' */
19878 L4_MABX_B.DataType_ba = L4_MABX_B.Operator_id;
19879 }
19880
19881 /* End of Outputs for SubSystem: '<S471>/Decode_TPCM_ConnectionAbort' */
19882
19883 /* RelationalOperator: '<S696>/Operator' incorporates:
19884 * Constant: '<S471>/Constant2'
19885 */
19886 L4_MABX_B.Operator_iw = (L4_MABX_B.DataTypeConversion_b5[0] ==
19887 L4_MABX_P.Constant2_Value_njc);
19888
19889 /* Outputs for Enabled SubSystem: '<S471>/Decode_TPCM_EndOfMessageAck' incorporates:
19890 * EnablePort: '<S692>/Enable'
19891 */
19892 if (L4_MABX_B.Operator_iw) {
19893 /* SignalConversion: '<S718>/Signal Conversion' */
19894 L4_MABX_B.SPN2556_ControlByte_e = L4_MABX_B.DataTypeConversion_b5[0];
19895
19896 /* DataTypeConversion: '<S719>/Data Type Conversion' */
19897 L4_MABX_B.DataTypeConversion_n1 = L4_MABX_B.DataTypeConversion_b5[1];
19898
19899 /* DataTypeConversion: '<S719>/Data Type Conversion1' */
19900 L4_MABX_B.DataTypeConversion1_hn = L4_MABX_B.DataTypeConversion_b5[2];
19901
19902 /* ArithShift: '<S719>/Shift Arithmetic2' */
19903 L4_MABX_B.ShiftArithmetic2_f = (uint16_T)(L4_MABX_B.DataTypeConversion1_hn <<
19904 8);
19905
19906 /* S-Function (sfix_bitop): '<S722>/Operator' */
19907 L4_MABX_B.Operator_a3 = (uint16_T)(L4_MABX_B.DataTypeConversion_n1 |
19908 L4_MABX_B.ShiftArithmetic2_f);
19909
19910 /* DataTypeConversion: '<S722>/DataType' */
19911 L4_MABX_B.DataType_bm = L4_MABX_B.Operator_a3;
19912
19913 /* SignalConversion: '<S720>/Signal Conversion' */
19914 L4_MABX_B.SPN2565_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_b5[3];
19915
19916 /* DataTypeConversion: '<S721>/Data Type Conversion' */
19917 L4_MABX_B.DataTypeConversion_k5 = L4_MABX_B.DataTypeConversion_b5[5];
19918
19919 /* DataTypeConversion: '<S721>/Data Type Conversion1' */
19920 L4_MABX_B.DataTypeConversion1_h4 = L4_MABX_B.DataTypeConversion_b5[6];
19921
19922 /* DataTypeConversion: '<S721>/Data Type Conversion2' */
19923 L4_MABX_B.DataTypeConversion2_oe = L4_MABX_B.DataTypeConversion_b5[7];
19924
19925 /* ArithShift: '<S721>/Shift Arithmetic1' */
19926 L4_MABX_B.ShiftArithmetic1_n = L4_MABX_B.DataTypeConversion1_h4 << 8;
19927
19928 /* ArithShift: '<S721>/Shift Arithmetic2' */
19929 L4_MABX_B.ShiftArithmetic2_h = L4_MABX_B.DataTypeConversion2_oe << 16;
19930
19931 /* S-Function (sfix_bitop): '<S723>/Operator' */
19932 L4_MABX_B.Operator_d = L4_MABX_B.DataTypeConversion_k5 |
19933 L4_MABX_B.ShiftArithmetic1_n | L4_MABX_B.ShiftArithmetic2_h;
19934
19935 /* DataTypeConversion: '<S723>/DataType' */
19936 L4_MABX_B.DataType_od = L4_MABX_B.Operator_d;
19937 }
19938
19939 /* End of Outputs for SubSystem: '<S471>/Decode_TPCM_EndOfMessageAck' */
19940
19941 /* RelationalOperator: '<S694>/Operator' incorporates:
19942 * Constant: '<S471>/Constant'
19943 */
19944 L4_MABX_B.Operator_c3 = (L4_MABX_B.DataTypeConversion_b5[0] ==
19945 L4_MABX_P.Constant_Value_k5);
19946
19947 /* Outputs for Enabled SubSystem: '<S471>/Decode_TPCM_RTS' incorporates:
19948 * EnablePort: '<S693>/Enable'
19949 */
19950 if (L4_MABX_B.Operator_c3) {
19951 /* SignalConversion: '<S725>/Signal Conversion' */
19952 L4_MABX_B.SPN2556_ControlByte = L4_MABX_B.DataTypeConversion_b5[0];
19953
19954 /* DataTypeConversion: '<S726>/Data Type Conversion' */
19955 L4_MABX_B.DataTypeConversion_juc = L4_MABX_B.DataTypeConversion_b5[1];
19956
19957 /* DataTypeConversion: '<S726>/Data Type Conversion1' */
19958 L4_MABX_B.DataTypeConversion1_o0 = L4_MABX_B.DataTypeConversion_b5[2];
19959
19960 /* ArithShift: '<S726>/Shift Arithmetic2' */
19961 L4_MABX_B.ShiftArithmetic2_g = (uint16_T)(L4_MABX_B.DataTypeConversion1_o0 <<
19962 8);
19963
19964 /* S-Function (sfix_bitop): '<S730>/Operator' */
19965 L4_MABX_B.Operator_jd = (uint16_T)(L4_MABX_B.DataTypeConversion_juc |
19966 L4_MABX_B.ShiftArithmetic2_g);
19967
19968 /* DataTypeConversion: '<S730>/DataType' */
19969 L4_MABX_B.DataType_fs = L4_MABX_B.Operator_jd;
19970
19971 /* SignalConversion: '<S727>/Signal Conversion' */
19972 L4_MABX_B.SPN2558_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_b5[3];
19973
19974 /* SignalConversion: '<S728>/Signal Conversion' */
19975 L4_MABX_B.SPN2559_MaximumNumberOfPackets = L4_MABX_B.DataTypeConversion_b5[4];
19976
19977 /* DataTypeConversion: '<S729>/Data Type Conversion' */
19978 L4_MABX_B.DataTypeConversion_c2 = L4_MABX_B.DataTypeConversion_b5[5];
19979
19980 /* DataTypeConversion: '<S729>/Data Type Conversion1' */
19981 L4_MABX_B.DataTypeConversion1_it = L4_MABX_B.DataTypeConversion_b5[6];
19982
19983 /* DataTypeConversion: '<S729>/Data Type Conversion2' */
19984 L4_MABX_B.DataTypeConversion2_d = L4_MABX_B.DataTypeConversion_b5[7];
19985
19986 /* ArithShift: '<S729>/Shift Arithmetic1' */
19987 L4_MABX_B.ShiftArithmetic1 = L4_MABX_B.DataTypeConversion1_it << 8;
19988
19989 /* ArithShift: '<S729>/Shift Arithmetic2' */
19990 L4_MABX_B.ShiftArithmetic2 = L4_MABX_B.DataTypeConversion2_d << 16;
19991
19992 /* S-Function (sfix_bitop): '<S731>/Operator' */
19993 L4_MABX_B.Operator_ar = L4_MABX_B.DataTypeConversion_c2 |
19994 L4_MABX_B.ShiftArithmetic1 | L4_MABX_B.ShiftArithmetic2;
19995
19996 /* DataTypeConversion: '<S731>/DataType' */
19997 L4_MABX_B.DataType_mb = L4_MABX_B.Operator_ar;
19998 }
19999
20000 /* End of Outputs for SubSystem: '<S471>/Decode_TPCM_RTS' */
20001
20002 /* RelationalOperator: '<S591>/Operator' incorporates:
20003 * Constant: '<S446>/Constant'
20004 * Constant: '<S587>/Constant'
20005 */
20006 L4_MABX_B.Operator_b1 = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant_Value_j);
20007
20008 /* Outputs for Enabled SubSystem: '<S584>/CAN_TYPE1_RX_M1_C1' incorporates:
20009 * EnablePort: '<S588>/Enable'
20010 */
20011 if (L4_MABX_B.Operator_b1) {
20012 /* S-Function (rti_commonblock): '<S588>/S-Function1' */
20013 /* This comment workarounds a code generation problem */
20014
20015 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:419426579 */
20016 {
20017 UInt32 *CAN_Msg;
20018 static dsfloat time_old = 0.0;
20019
20020 /* Read status and timestamp info (previous message) */
20021 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].timestamp !=
20022 time_old) {
20023 /* ... save timestamp info for the calculation of the RX status
20024 during the consecutive sample hit*/
20025 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].
20026 timestamp;
20027
20028 /* ... set the processed flag to one */
20029 L4_MABX_B.SFunction1_o9_i = 1.0;
20030 L4_MABX_B.SFunction1_o10_n = (real_T)
20031 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].timestamp;
20032 L4_MABX_B.SFunction1_o11_n = (real_T)
20033 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].deltatime;
20034 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].data;
20035
20036 /* Decode CAN message */
20037 {
20038 {
20039 rtican_Signal_t CAN_Sgn;
20040
20041 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20042 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20043 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20044 L4_MABX_B.SFunction1_o1_eh = ((real_T) CAN_Sgn.UnsignedSgn);
20045
20046 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20047 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20048 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20049 L4_MABX_B.SFunction1_o2_dw = ((real_T) CAN_Sgn.UnsignedSgn);
20050
20051 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20052 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20053 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20054 L4_MABX_B.SFunction1_o3_m = ((real_T) CAN_Sgn.UnsignedSgn);
20055
20056 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20057 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20058 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20059 L4_MABX_B.SFunction1_o4_ho = ((real_T) CAN_Sgn.UnsignedSgn);
20060
20061 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20062 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20063 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20064 L4_MABX_B.SFunction1_o5_h3 = ((real_T) CAN_Sgn.UnsignedSgn);
20065
20066 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20067 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20068 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20069 L4_MABX_B.SFunction1_o6_db = ((real_T) CAN_Sgn.UnsignedSgn);
20070
20071 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20072 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20073 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20074 L4_MABX_B.SFunction1_o7_ax = ((real_T) CAN_Sgn.UnsignedSgn);
20075
20076 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20077 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20078 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20079 L4_MABX_B.SFunction1_o8_o = ((real_T) CAN_Sgn.UnsignedSgn);
20080 }
20081 }
20082 } else {
20083 /* set RX status to 0 because no new message has arrived */
20084 L4_MABX_B.SFunction1_o9_i = 0.0;
20085 }
20086 }
20087 }
20088
20089 /* End of Outputs for SubSystem: '<S584>/CAN_TYPE1_RX_M1_C1' */
20090
20091 /* RelationalOperator: '<S592>/Operator' incorporates:
20092 * Constant: '<S446>/Constant'
20093 * Constant: '<S587>/Constant1'
20094 */
20095 L4_MABX_B.Operator_ae = (PROPB_REAX_CHANNEL_APV ==
20096 L4_MABX_P.Constant1_Value_ns);
20097
20098 /* Outputs for Enabled SubSystem: '<S585>/CAN_TYPE1_RX_M1_C2' incorporates:
20099 * EnablePort: '<S589>/Enable'
20100 */
20101 if (L4_MABX_B.Operator_ae) {
20102 /* S-Function (rti_commonblock): '<S589>/S-Function1' */
20103 /* This comment workarounds a code generation problem */
20104
20105 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:419426579 */
20106 {
20107 UInt32 *CAN_Msg;
20108 static dsfloat time_old = 0.0;
20109
20110 /* Read status and timestamp info (previous message) */
20111 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].timestamp !=
20112 time_old) {
20113 /* ... save timestamp info for the calculation of the RX status
20114 during the consecutive sample hit*/
20115 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].
20116 timestamp;
20117
20118 /* ... set the processed flag to one */
20119 L4_MABX_B.SFunction1_o9_d = 1.0;
20120 L4_MABX_B.SFunction1_o10_jf = (real_T)
20121 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].timestamp;
20122 L4_MABX_B.SFunction1_o11_l = (real_T)
20123 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].deltatime;
20124 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].data;
20125
20126 /* Decode CAN message */
20127 {
20128 {
20129 rtican_Signal_t CAN_Sgn;
20130
20131 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20132 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20133 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20134 L4_MABX_B.SFunction1_o1_ab = ((real_T) CAN_Sgn.UnsignedSgn);
20135
20136 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20137 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20138 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20139 L4_MABX_B.SFunction1_o2_on = ((real_T) CAN_Sgn.UnsignedSgn);
20140
20141 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20142 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20143 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20144 L4_MABX_B.SFunction1_o3_nl = ((real_T) CAN_Sgn.UnsignedSgn);
20145
20146 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20147 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20148 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20149 L4_MABX_B.SFunction1_o4_kt = ((real_T) CAN_Sgn.UnsignedSgn);
20150
20151 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20152 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20153 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20154 L4_MABX_B.SFunction1_o5_f = ((real_T) CAN_Sgn.UnsignedSgn);
20155
20156 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20157 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20158 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20159 L4_MABX_B.SFunction1_o6_j = ((real_T) CAN_Sgn.UnsignedSgn);
20160
20161 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20162 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20163 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20164 L4_MABX_B.SFunction1_o7_d = ((real_T) CAN_Sgn.UnsignedSgn);
20165
20166 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20167 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20168 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20169 L4_MABX_B.SFunction1_o8_m = ((real_T) CAN_Sgn.UnsignedSgn);
20170 }
20171 }
20172 } else {
20173 /* set RX status to 0 because no new message has arrived */
20174 L4_MABX_B.SFunction1_o9_d = 0.0;
20175 }
20176 }
20177 }
20178
20179 /* End of Outputs for SubSystem: '<S585>/CAN_TYPE1_RX_M1_C2' */
20180
20181 /* DataTypeConversion: '<S585>/Data Type Conversion' */
20182 PositionFinalLimited = L4_MABX_B.SFunction1_o1_ab;
20183 if (PositionFinalLimited < 256.0) {
20184 if (PositionFinalLimited >= 0.0) {
20185 starting_index = (uint8_T)PositionFinalLimited;
20186 } else {
20187 starting_index = 0U;
20188 }
20189 } else {
20190 starting_index = MAX_uint8_T;
20191 }
20192
20193 L4_MABX_B.DataTypeConversion_j1 = starting_index;
20194
20195 /* End of DataTypeConversion: '<S585>/Data Type Conversion' */
20196
20197 /* DataTypeConversion: '<S585>/Data Type Conversion1' */
20198 PositionFinalLimited = L4_MABX_B.SFunction1_o2_on;
20199 if (PositionFinalLimited < 256.0) {
20200 if (PositionFinalLimited >= 0.0) {
20201 starting_index = (uint8_T)PositionFinalLimited;
20202 } else {
20203 starting_index = 0U;
20204 }
20205 } else {
20206 starting_index = MAX_uint8_T;
20207 }
20208
20209 L4_MABX_B.DataTypeConversion1_hmw = starting_index;
20210
20211 /* End of DataTypeConversion: '<S585>/Data Type Conversion1' */
20212
20213 /* DataTypeConversion: '<S585>/Data Type Conversion2' */
20214 PositionFinalLimited = L4_MABX_B.SFunction1_o3_nl;
20215 if (PositionFinalLimited < 256.0) {
20216 if (PositionFinalLimited >= 0.0) {
20217 starting_index = (uint8_T)PositionFinalLimited;
20218 } else {
20219 starting_index = 0U;
20220 }
20221 } else {
20222 starting_index = MAX_uint8_T;
20223 }
20224
20225 L4_MABX_B.DataTypeConversion2_cd = starting_index;
20226
20227 /* End of DataTypeConversion: '<S585>/Data Type Conversion2' */
20228
20229 /* DataTypeConversion: '<S585>/Data Type Conversion3' */
20230 PositionFinalLimited = L4_MABX_B.SFunction1_o4_kt;
20231 if (PositionFinalLimited < 256.0) {
20232 if (PositionFinalLimited >= 0.0) {
20233 starting_index = (uint8_T)PositionFinalLimited;
20234 } else {
20235 starting_index = 0U;
20236 }
20237 } else {
20238 starting_index = MAX_uint8_T;
20239 }
20240
20241 L4_MABX_B.DataTypeConversion3_b = starting_index;
20242
20243 /* End of DataTypeConversion: '<S585>/Data Type Conversion3' */
20244
20245 /* DataTypeConversion: '<S585>/Data Type Conversion4' */
20246 PositionFinalLimited = L4_MABX_B.SFunction1_o5_f;
20247 if (PositionFinalLimited < 256.0) {
20248 if (PositionFinalLimited >= 0.0) {
20249 starting_index = (uint8_T)PositionFinalLimited;
20250 } else {
20251 starting_index = 0U;
20252 }
20253 } else {
20254 starting_index = MAX_uint8_T;
20255 }
20256
20257 L4_MABX_B.DataTypeConversion4_n2 = starting_index;
20258
20259 /* End of DataTypeConversion: '<S585>/Data Type Conversion4' */
20260
20261 /* DataTypeConversion: '<S585>/Data Type Conversion5' */
20262 PositionFinalLimited = L4_MABX_B.SFunction1_o6_j;
20263 if (PositionFinalLimited < 256.0) {
20264 if (PositionFinalLimited >= 0.0) {
20265 starting_index = (uint8_T)PositionFinalLimited;
20266 } else {
20267 starting_index = 0U;
20268 }
20269 } else {
20270 starting_index = MAX_uint8_T;
20271 }
20272
20273 L4_MABX_B.DataTypeConversion5_a1 = starting_index;
20274
20275 /* End of DataTypeConversion: '<S585>/Data Type Conversion5' */
20276
20277 /* DataTypeConversion: '<S585>/Data Type Conversion6' */
20278 PositionFinalLimited = L4_MABX_B.SFunction1_o7_d;
20279 if (PositionFinalLimited < 256.0) {
20280 if (PositionFinalLimited >= 0.0) {
20281 starting_index = (uint8_T)PositionFinalLimited;
20282 } else {
20283 starting_index = 0U;
20284 }
20285 } else {
20286 starting_index = MAX_uint8_T;
20287 }
20288
20289 L4_MABX_B.DataTypeConversion6_n0 = starting_index;
20290
20291 /* End of DataTypeConversion: '<S585>/Data Type Conversion6' */
20292
20293 /* DataTypeConversion: '<S585>/Data Type Conversion7' */
20294 PositionFinalLimited = L4_MABX_B.SFunction1_o8_m;
20295 if (PositionFinalLimited < 256.0) {
20296 if (PositionFinalLimited >= 0.0) {
20297 starting_index = (uint8_T)PositionFinalLimited;
20298 } else {
20299 starting_index = 0U;
20300 }
20301 } else {
20302 starting_index = MAX_uint8_T;
20303 }
20304
20305 L4_MABX_B.DataTypeConversion7_gy = starting_index;
20306
20307 /* End of DataTypeConversion: '<S585>/Data Type Conversion7' */
20308
20309 /* RelationalOperator: '<S596>/Operator' incorporates:
20310 * Constant: '<S446>/Constant'
20311 * Constant: '<S587>/Constant5'
20312 */
20313 L4_MABX_B.Operator_oq = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant5_Value_i);
20314
20315 /* Outputs for Enabled SubSystem: '<S586>/CAN_TYPE1_RX_M3_C2' incorporates:
20316 * EnablePort: '<S590>/Enable'
20317 */
20318 if (L4_MABX_B.Operator_oq) {
20319 /* S-Function (rti_commonblock): '<S590>/S-Function1' */
20320 /* This comment workarounds a code generation problem */
20321
20322 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:486535443 */
20323 {
20324 UInt32 *CAN_Msg;
20325 static dsfloat time_old = 0.0;
20326
20327 /* Read status and timestamp info (previous message) */
20328 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].timestamp !=
20329 time_old) {
20330 /* ... save timestamp info for the calculation of the RX status
20331 during the consecutive sample hit*/
20332 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].
20333 timestamp;
20334
20335 /* ... set the processed flag to one */
20336 L4_MABX_B.SFunction1_o9_c5 = 1.0;
20337 L4_MABX_B.SFunction1_o10_hf = (real_T)
20338 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].timestamp;
20339 L4_MABX_B.SFunction1_o11_p = (real_T)
20340 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].deltatime;
20341 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].data;
20342
20343 /* Decode CAN message */
20344 {
20345 {
20346 rtican_Signal_t CAN_Sgn;
20347
20348 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20349 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20350 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20351 L4_MABX_B.SFunction1_o1_fo = ((real_T) CAN_Sgn.UnsignedSgn);
20352
20353 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20354 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20355 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20356 L4_MABX_B.SFunction1_o2_fu = ((real_T) CAN_Sgn.UnsignedSgn);
20357
20358 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20359 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20360 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20361 L4_MABX_B.SFunction1_o3_e0 = ((real_T) CAN_Sgn.UnsignedSgn);
20362
20363 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20364 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20365 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20366 L4_MABX_B.SFunction1_o4_kh = ((real_T) CAN_Sgn.UnsignedSgn);
20367
20368 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20369 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20370 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20371 L4_MABX_B.SFunction1_o5_nq = ((real_T) CAN_Sgn.UnsignedSgn);
20372
20373 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20374 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20375 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20376 L4_MABX_B.SFunction1_o6_c = ((real_T) CAN_Sgn.UnsignedSgn);
20377
20378 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20379 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20380 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20381 L4_MABX_B.SFunction1_o7_c3 = ((real_T) CAN_Sgn.UnsignedSgn);
20382
20383 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20384 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20385 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20386 L4_MABX_B.SFunction1_o8_j4 = ((real_T) CAN_Sgn.UnsignedSgn);
20387 }
20388 }
20389 } else {
20390 /* set RX status to 0 because no new message has arrived */
20391 L4_MABX_B.SFunction1_o9_c5 = 0.0;
20392 }
20393 }
20394 }
20395
20396 /* End of Outputs for SubSystem: '<S586>/CAN_TYPE1_RX_M3_C2' */
20397
20398 /* DataTypeConversion: '<S586>/Data Type Conversion' */
20399 PositionFinalLimited = L4_MABX_B.SFunction1_o1_fo;
20400 if (PositionFinalLimited < 256.0) {
20401 if (PositionFinalLimited >= 0.0) {
20402 starting_index = (uint8_T)PositionFinalLimited;
20403 } else {
20404 starting_index = 0U;
20405 }
20406 } else {
20407 starting_index = MAX_uint8_T;
20408 }
20409
20410 L4_MABX_B.DataTypeConversion_po = starting_index;
20411
20412 /* End of DataTypeConversion: '<S586>/Data Type Conversion' */
20413
20414 /* DataTypeConversion: '<S586>/Data Type Conversion1' */
20415 PositionFinalLimited = L4_MABX_B.SFunction1_o2_fu;
20416 if (PositionFinalLimited < 256.0) {
20417 if (PositionFinalLimited >= 0.0) {
20418 starting_index = (uint8_T)PositionFinalLimited;
20419 } else {
20420 starting_index = 0U;
20421 }
20422 } else {
20423 starting_index = MAX_uint8_T;
20424 }
20425
20426 L4_MABX_B.DataTypeConversion1_bi = starting_index;
20427
20428 /* End of DataTypeConversion: '<S586>/Data Type Conversion1' */
20429
20430 /* DataTypeConversion: '<S586>/Data Type Conversion2' */
20431 PositionFinalLimited = L4_MABX_B.SFunction1_o3_e0;
20432 if (PositionFinalLimited < 256.0) {
20433 if (PositionFinalLimited >= 0.0) {
20434 starting_index = (uint8_T)PositionFinalLimited;
20435 } else {
20436 starting_index = 0U;
20437 }
20438 } else {
20439 starting_index = MAX_uint8_T;
20440 }
20441
20442 L4_MABX_B.DataTypeConversion2_pi = starting_index;
20443
20444 /* End of DataTypeConversion: '<S586>/Data Type Conversion2' */
20445
20446 /* DataTypeConversion: '<S586>/Data Type Conversion3' */
20447 PositionFinalLimited = L4_MABX_B.SFunction1_o4_kh;
20448 if (PositionFinalLimited < 256.0) {
20449 if (PositionFinalLimited >= 0.0) {
20450 starting_index = (uint8_T)PositionFinalLimited;
20451 } else {
20452 starting_index = 0U;
20453 }
20454 } else {
20455 starting_index = MAX_uint8_T;
20456 }
20457
20458 L4_MABX_B.DataTypeConversion3_p43 = starting_index;
20459
20460 /* End of DataTypeConversion: '<S586>/Data Type Conversion3' */
20461
20462 /* DataTypeConversion: '<S586>/Data Type Conversion4' */
20463 PositionFinalLimited = L4_MABX_B.SFunction1_o5_nq;
20464 if (PositionFinalLimited < 256.0) {
20465 if (PositionFinalLimited >= 0.0) {
20466 starting_index = (uint8_T)PositionFinalLimited;
20467 } else {
20468 starting_index = 0U;
20469 }
20470 } else {
20471 starting_index = MAX_uint8_T;
20472 }
20473
20474 L4_MABX_B.DataTypeConversion4_nb = starting_index;
20475
20476 /* End of DataTypeConversion: '<S586>/Data Type Conversion4' */
20477
20478 /* DataTypeConversion: '<S586>/Data Type Conversion5' */
20479 PositionFinalLimited = L4_MABX_B.SFunction1_o6_c;
20480 if (PositionFinalLimited < 256.0) {
20481 if (PositionFinalLimited >= 0.0) {
20482 starting_index = (uint8_T)PositionFinalLimited;
20483 } else {
20484 starting_index = 0U;
20485 }
20486 } else {
20487 starting_index = MAX_uint8_T;
20488 }
20489
20490 L4_MABX_B.DataTypeConversion5_n5 = starting_index;
20491
20492 /* End of DataTypeConversion: '<S586>/Data Type Conversion5' */
20493
20494 /* DataTypeConversion: '<S586>/Data Type Conversion6' */
20495 PositionFinalLimited = L4_MABX_B.SFunction1_o7_c3;
20496 if (PositionFinalLimited < 256.0) {
20497 if (PositionFinalLimited >= 0.0) {
20498 starting_index = (uint8_T)PositionFinalLimited;
20499 } else {
20500 starting_index = 0U;
20501 }
20502 } else {
20503 starting_index = MAX_uint8_T;
20504 }
20505
20506 L4_MABX_B.DataTypeConversion6_g = starting_index;
20507
20508 /* End of DataTypeConversion: '<S586>/Data Type Conversion6' */
20509
20510 /* DataTypeConversion: '<S586>/Data Type Conversion7' */
20511 PositionFinalLimited = L4_MABX_B.SFunction1_o8_j4;
20512 if (PositionFinalLimited < 256.0) {
20513 if (PositionFinalLimited >= 0.0) {
20514 starting_index = (uint8_T)PositionFinalLimited;
20515 } else {
20516 starting_index = 0U;
20517 }
20518 } else {
20519 starting_index = MAX_uint8_T;
20520 }
20521
20522 L4_MABX_B.DataTypeConversion7_ao = starting_index;
20523
20524 /* End of DataTypeConversion: '<S586>/Data Type Conversion7' */
20525
20526 /* MultiPortSwitch: '<S446>/Multiport_Switch' incorporates:
20527 * Constant: '<S446>/Constant'
20528 */
20529 switch (PROPB_REAX_CHANNEL_APV) {
20530 case ENUM_CAN_RX_T_RX_CAN_1:
20531 /* DataTypeConversion: '<S584>/Data Type Conversion' */
20532 PositionFinalLimited = L4_MABX_B.SFunction1_o1_eh;
20533 if (PositionFinalLimited < 256.0) {
20534 if (PositionFinalLimited >= 0.0) {
20535 starting_index = (uint8_T)PositionFinalLimited;
20536 } else {
20537 starting_index = 0U;
20538 }
20539 } else {
20540 starting_index = MAX_uint8_T;
20541 }
20542
20543 L4_MABX_B.DataTypeConversion_kfr = starting_index;
20544
20545 /* End of DataTypeConversion: '<S584>/Data Type Conversion' */
20546
20547 /* DataTypeConversion: '<S584>/Data Type Conversion1' */
20548 PositionFinalLimited = L4_MABX_B.SFunction1_o2_dw;
20549 if (PositionFinalLimited < 256.0) {
20550 if (PositionFinalLimited >= 0.0) {
20551 starting_index = (uint8_T)PositionFinalLimited;
20552 } else {
20553 starting_index = 0U;
20554 }
20555 } else {
20556 starting_index = MAX_uint8_T;
20557 }
20558
20559 L4_MABX_B.DataTypeConversion1_e3 = starting_index;
20560
20561 /* End of DataTypeConversion: '<S584>/Data Type Conversion1' */
20562
20563 /* DataTypeConversion: '<S584>/Data Type Conversion2' */
20564 PositionFinalLimited = L4_MABX_B.SFunction1_o3_m;
20565 if (PositionFinalLimited < 256.0) {
20566 if (PositionFinalLimited >= 0.0) {
20567 starting_index = (uint8_T)PositionFinalLimited;
20568 } else {
20569 starting_index = 0U;
20570 }
20571 } else {
20572 starting_index = MAX_uint8_T;
20573 }
20574
20575 L4_MABX_B.DataTypeConversion2_lv = starting_index;
20576
20577 /* End of DataTypeConversion: '<S584>/Data Type Conversion2' */
20578
20579 /* DataTypeConversion: '<S584>/Data Type Conversion3' */
20580 PositionFinalLimited = L4_MABX_B.SFunction1_o4_ho;
20581 if (PositionFinalLimited < 256.0) {
20582 if (PositionFinalLimited >= 0.0) {
20583 starting_index = (uint8_T)PositionFinalLimited;
20584 } else {
20585 starting_index = 0U;
20586 }
20587 } else {
20588 starting_index = MAX_uint8_T;
20589 }
20590
20591 L4_MABX_B.DataTypeConversion3_a = starting_index;
20592
20593 /* End of DataTypeConversion: '<S584>/Data Type Conversion3' */
20594
20595 /* DataTypeConversion: '<S584>/Data Type Conversion4' */
20596 PositionFinalLimited = L4_MABX_B.SFunction1_o5_h3;
20597 if (PositionFinalLimited < 256.0) {
20598 if (PositionFinalLimited >= 0.0) {
20599 starting_index = (uint8_T)PositionFinalLimited;
20600 } else {
20601 starting_index = 0U;
20602 }
20603 } else {
20604 starting_index = MAX_uint8_T;
20605 }
20606
20607 L4_MABX_B.DataTypeConversion4_h = starting_index;
20608
20609 /* End of DataTypeConversion: '<S584>/Data Type Conversion4' */
20610
20611 /* DataTypeConversion: '<S584>/Data Type Conversion5' */
20612 PositionFinalLimited = L4_MABX_B.SFunction1_o6_db;
20613 if (PositionFinalLimited < 256.0) {
20614 if (PositionFinalLimited >= 0.0) {
20615 starting_index = (uint8_T)PositionFinalLimited;
20616 } else {
20617 starting_index = 0U;
20618 }
20619 } else {
20620 starting_index = MAX_uint8_T;
20621 }
20622
20623 L4_MABX_B.DataTypeConversion5_ea = starting_index;
20624
20625 /* End of DataTypeConversion: '<S584>/Data Type Conversion5' */
20626
20627 /* DataTypeConversion: '<S584>/Data Type Conversion6' */
20628 PositionFinalLimited = L4_MABX_B.SFunction1_o7_ax;
20629 if (PositionFinalLimited < 256.0) {
20630 if (PositionFinalLimited >= 0.0) {
20631 starting_index = (uint8_T)PositionFinalLimited;
20632 } else {
20633 starting_index = 0U;
20634 }
20635 } else {
20636 starting_index = MAX_uint8_T;
20637 }
20638
20639 L4_MABX_B.DataTypeConversion6_nl = starting_index;
20640
20641 /* End of DataTypeConversion: '<S584>/Data Type Conversion6' */
20642
20643 /* DataTypeConversion: '<S584>/Data Type Conversion7' */
20644 PositionFinalLimited = L4_MABX_B.SFunction1_o8_o;
20645 if (PositionFinalLimited < 256.0) {
20646 if (PositionFinalLimited >= 0.0) {
20647 starting_index = (uint8_T)PositionFinalLimited;
20648 } else {
20649 starting_index = 0U;
20650 }
20651 } else {
20652 starting_index = MAX_uint8_T;
20653 }
20654
20655 L4_MABX_B.DataTypeConversion7_h5 = starting_index;
20656
20657 /* End of DataTypeConversion: '<S584>/Data Type Conversion7' */
20658 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_kfr;
20659 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_e3;
20660 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_lv;
20661 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_a;
20662 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_h;
20663 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_ea;
20664 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_nl;
20665 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_h5;
20666 break;
20667
20668 case ENUM_CAN_RX_T_RX_CAN_2:
20669 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_j1;
20670 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_hmw;
20671 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_cd;
20672 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_b;
20673 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_n2;
20674 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_a1;
20675 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_n0;
20676 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_gy;
20677 break;
20678
20679 case ENUM_CAN_RX_T_RX_CAN_3:
20680 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_j1;
20681 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_hmw;
20682 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_cd;
20683 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_b;
20684 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_n2;
20685 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_a1;
20686 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_n0;
20687 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_gy;
20688 break;
20689
20690 case ENUM_CAN_RX_T_RX_CAN_4:
20691 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_j1;
20692 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_hmw;
20693 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_cd;
20694 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_b;
20695 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_n2;
20696 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_a1;
20697 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_n0;
20698 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_gy;
20699 break;
20700
20701 case ENUM_CAN_RX_T_RX_CAN_5:
20702 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_j1;
20703 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_hmw;
20704 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_cd;
20705 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_b;
20706 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_n2;
20707 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_a1;
20708 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_n0;
20709 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_gy;
20710 break;
20711
20712 case ENUM_CAN_RX_T_RX_CAN_6:
20713 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_po;
20714 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_bi;
20715 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_pi;
20716 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_p43;
20717 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_nb;
20718 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_n5;
20719 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_g;
20720 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_ao;
20721 break;
20722
20723 default:
20724 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_po;
20725 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_bi;
20726 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_pi;
20727 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_p43;
20728 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_nb;
20729 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_n5;
20730 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_g;
20731 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_ao;
20732 break;
20733 }
20734
20735 /* S-Function (sfix_bitop): '<S674>/Operator' */
20736 L4_MABX_B.Operator_mj = (uint8_T)(L4_MABX_B.RawData_e[0] &
20737 L4_MABX_P.Operator_BitMask_e4);
20738
20739 /* DataTypeConversion: '<S674>/DataType' */
20740 L4_MABX_B.DataType_fk = L4_MABX_B.Operator_mj;
20741
20742 /* DataTypeConversion: '<S421>/Data Type Conversion' */
20743 REAX_Current_Mode = L4_MABX_B.DataType_fk;
20744
20745 /* S-Function (sfix_bitop): '<S673>/Operator' */
20746 L4_MABX_B.Operator_ji = (uint8_T)(L4_MABX_B.RawData_e[0] &
20747 L4_MABX_P.Operator_BitMask_ew);
20748
20749 /* DataTypeConversion: '<S673>/DataType' */
20750 L4_MABX_B.DataType_ml = L4_MABX_B.Operator_ji;
20751
20752 /* ArithShift: '<S668>/Shift_Arithmetic ' */
20753 L4_MABX_B.PropB_REAX_3_ReqOperatingMode = (uint8_T)((uint32_T)
20754 L4_MABX_B.DataType_ml >> 4);
20755
20756 /* DataTypeConversion: '<S421>/Data Type Conversion1' */
20757 REAX_Req_Mode = L4_MABX_B.PropB_REAX_3_ReqOperatingMode;
20758
20759 /* DataTypeConversion: '<S421>/Data Type Conversion2' */
20760 REAX_Status = L4_MABX_B.RawData_e[1];
20761
20762 /* DataTypeConversion: '<S670>/Data Type Conversion1' */
20763 L4_MABX_B.DataTypeConversion1_lp = L4_MABX_B.RawData_e[2];
20764
20765 /* DataTypeConversion: '<S670>/Data Type Conversion2' */
20766 L4_MABX_B.DataTypeConversion2_mq = L4_MABX_B.RawData_e[3];
20767
20768 /* ArithShift: '<S670>/Shift_Arithmetic 1' */
20769 L4_MABX_B.Shift_Arithmetic1_f = (uint16_T)(L4_MABX_B.DataTypeConversion2_mq <<
20770 8);
20771
20772 /* S-Function (sfix_bitop): '<S675>/Operator' */
20773 L4_MABX_B.Operator_p = (uint16_T)(L4_MABX_B.DataTypeConversion1_lp |
20774 L4_MABX_B.Shift_Arithmetic1_f);
20775
20776 /* DataTypeConversion: '<S675>/DataType' */
20777 L4_MABX_B.DataType_gw = L4_MABX_B.Operator_p;
20778
20779 /* DataTypeConversion: '<S670>/Data Type Conversion3' */
20780 L4_MABX_B.DataTypeConversion3_e = (int16_T)L4_MABX_B.DataType_gw;
20781
20782 /* DataTypeConversion: '<S670>/Data Type Conversion4' */
20783 L4_MABX_B.DataTypeConversion4_m = L4_MABX_B.DataTypeConversion3_e;
20784
20785 /* Product: '<S670>/Product' incorporates:
20786 * Constant: '<S670>/Constant'
20787 */
20788 L4_MABX_B.PropB_REAX_3_HandwheelTorque = (real32_T)
20789 (L4_MABX_B.DataTypeConversion4_m * L4_MABX_P.Constant_Value_hc);
20790
20791 /* DataTypeConversion: '<S421>/Data Type Conversion3' */
20792 REAX_Handwheel_Torque = L4_MABX_B.PropB_REAX_3_HandwheelTorque;
20793
20794 /* DataTypeConversion: '<S671>/Data Type Conversion4' */
20795 L4_MABX_B.DataTypeConversion4_l = L4_MABX_B.RawData_e[4];
20796
20797 /* DataTypeConversion: '<S671>/Data Type Conversion5' */
20798 L4_MABX_B.DataTypeConversion5_j = L4_MABX_B.RawData_e[5];
20799
20800 /* ArithShift: '<S671>/Shift_Arithmetic 2' */
20801 L4_MABX_B.Shift_Arithmetic2_c = (uint16_T)(L4_MABX_B.DataTypeConversion5_j <<
20802 8);
20803
20804 /* S-Function (sfix_bitop): '<S676>/Operator' */
20805 L4_MABX_B.Operator_ci = (uint16_T)(L4_MABX_B.DataTypeConversion4_l |
20806 L4_MABX_B.Shift_Arithmetic2_c);
20807
20808 /* DataTypeConversion: '<S676>/DataType' */
20809 L4_MABX_B.DataType_hk = L4_MABX_B.Operator_ci;
20810
20811 /* DataTypeConversion: '<S671>/Data Type Conversion6' */
20812 L4_MABX_B.DataTypeConversion6_n = (int16_T)L4_MABX_B.DataType_hk;
20813
20814 /* DataTypeConversion: '<S671>/Data Type Conversion1' */
20815 L4_MABX_B.DataTypeConversion1_n = L4_MABX_B.DataTypeConversion6_n;
20816
20817 /* Product: '<S671>/Product1' incorporates:
20818 * Constant: '<S671>/Constant1'
20819 */
20820 L4_MABX_B.PropB_REAX_3_HandwheelVelocity = (real32_T)
20821 (L4_MABX_B.DataTypeConversion1_n * L4_MABX_P.Constant1_Value_o0);
20822
20823 /* DataTypeConversion: '<S421>/Data Type Conversion4' */
20824 REAX_Handwheel_Velocity = L4_MABX_B.PropB_REAX_3_HandwheelVelocity;
20825
20826 /* DataTypeConversion: '<S672>/Data Type Conversion7' */
20827 L4_MABX_B.DataTypeConversion7_a = L4_MABX_B.RawData_e[6];
20828
20829 /* DataTypeConversion: '<S672>/Data Type Conversion8' */
20830 L4_MABX_B.DataTypeConversion8_f = L4_MABX_B.RawData_e[7];
20831
20832 /* ArithShift: '<S672>/Shift_Arithmetic 3' */
20833 L4_MABX_B.Shift_Arithmetic3_l = (uint16_T)(L4_MABX_B.DataTypeConversion8_f <<
20834 8);
20835
20836 /* S-Function (sfix_bitop): '<S677>/Operator' */
20837 L4_MABX_B.Operator_pc = (uint16_T)(L4_MABX_B.DataTypeConversion7_a |
20838 L4_MABX_B.Shift_Arithmetic3_l);
20839
20840 /* DataTypeConversion: '<S677>/DataType' */
20841 L4_MABX_B.DataType_fhs = L4_MABX_B.Operator_pc;
20842
20843 /* DataTypeConversion: '<S672>/Data Type Conversion9' */
20844 L4_MABX_B.DataTypeConversion9_hm = (int16_T)L4_MABX_B.DataType_fhs;
20845
20846 /* DataTypeConversion: '<S672>/Data Type Conversion1' */
20847 L4_MABX_B.DataTypeConversion1_p = L4_MABX_B.DataTypeConversion9_hm;
20848
20849 /* Product: '<S672>/Product2' incorporates:
20850 * Constant: '<S672>/Constant2'
20851 */
20852 L4_MABX_B.PropB_REAX_3_PullCompensation = (real32_T)
20853 (L4_MABX_B.DataTypeConversion1_p * L4_MABX_P.Constant2_Value_i);
20854
20855 /* DataTypeConversion: '<S421>/Data Type Conversion5' */
20856 REAX_Pull_Compensation = L4_MABX_B.PropB_REAX_3_PullCompensation;
20857
20858 /* DataTypeConversion: '<S585>/Data Type Conversion8' */
20859 L4_MABX_B.RX_status_ho = (L4_MABX_B.SFunction1_o9_d != 0.0);
20860
20861 /* DataTypeConversion: '<S586>/Data Type Conversion8' */
20862 L4_MABX_B.RX_status_np = (L4_MABX_B.SFunction1_o9_c5 != 0.0);
20863
20864 /* MultiPortSwitch: '<S446>/Multiport_Switch' incorporates:
20865 * Constant: '<S446>/Constant'
20866 */
20867 switch (PROPB_REAX_CHANNEL_APV) {
20868 case ENUM_CAN_RX_T_RX_CAN_1:
20869 /* DataTypeConversion: '<S584>/Data Type Conversion8' */
20870 L4_MABX_B.RX_status_kp = (L4_MABX_B.SFunction1_o9_i != 0.0);
20871 L4_MABX_B.RX_status_eq4 = L4_MABX_B.RX_status_kp;
20872 break;
20873
20874 case ENUM_CAN_RX_T_RX_CAN_2:
20875 L4_MABX_B.RX_status_eq4 = L4_MABX_B.RX_status_ho;
20876 break;
20877
20878 case ENUM_CAN_RX_T_RX_CAN_3:
20879 L4_MABX_B.RX_status_eq4 = L4_MABX_B.RX_status_ho;
20880 break;
20881
20882 case ENUM_CAN_RX_T_RX_CAN_4:
20883 L4_MABX_B.RX_status_eq4 = L4_MABX_B.RX_status_ho;
20884 break;
20885
20886 case ENUM_CAN_RX_T_RX_CAN_5:
20887 L4_MABX_B.RX_status_eq4 = L4_MABX_B.RX_status_ho;
20888 break;
20889
20890 case ENUM_CAN_RX_T_RX_CAN_6:
20891 L4_MABX_B.RX_status_eq4 = L4_MABX_B.RX_status_np;
20892 break;
20893
20894 default:
20895 L4_MABX_B.RX_status_eq4 = L4_MABX_B.RX_status_np;
20896 break;
20897 }
20898
20899 /* DataTypeConversion: '<S585>/Data Type Conversion9' */
20900 L4_MABX_B.RX_time_hz = L4_MABX_B.SFunction1_o10_jf;
20901
20902 /* DataTypeConversion: '<S586>/Data Type Conversion9' */
20903 L4_MABX_B.RX_time_le = L4_MABX_B.SFunction1_o10_hf;
20904
20905 /* MultiPortSwitch: '<S446>/Multiport_Switch' incorporates:
20906 * Constant: '<S446>/Constant'
20907 */
20908 switch (PROPB_REAX_CHANNEL_APV) {
20909 case ENUM_CAN_RX_T_RX_CAN_1:
20910 /* DataTypeConversion: '<S584>/Data Type Conversion9' */
20911 L4_MABX_B.RX_time_bc = L4_MABX_B.SFunction1_o10_n;
20912 L4_MABX_B.RX_time_di = L4_MABX_B.RX_time_bc;
20913 break;
20914
20915 case ENUM_CAN_RX_T_RX_CAN_2:
20916 L4_MABX_B.RX_time_di = L4_MABX_B.RX_time_hz;
20917 break;
20918
20919 case ENUM_CAN_RX_T_RX_CAN_3:
20920 L4_MABX_B.RX_time_di = L4_MABX_B.RX_time_hz;
20921 break;
20922
20923 case ENUM_CAN_RX_T_RX_CAN_4:
20924 L4_MABX_B.RX_time_di = L4_MABX_B.RX_time_hz;
20925 break;
20926
20927 case ENUM_CAN_RX_T_RX_CAN_5:
20928 L4_MABX_B.RX_time_di = L4_MABX_B.RX_time_hz;
20929 break;
20930
20931 case ENUM_CAN_RX_T_RX_CAN_6:
20932 L4_MABX_B.RX_time_di = L4_MABX_B.RX_time_le;
20933 break;
20934
20935 default:
20936 L4_MABX_B.RX_time_di = L4_MABX_B.RX_time_le;
20937 break;
20938 }
20939
20940 /* DataTypeConversion: '<S585>/Data Type Conversion10' */
20941 L4_MABX_B.RX_delta_time_jv = L4_MABX_B.SFunction1_o11_l;
20942
20943 /* DataTypeConversion: '<S586>/Data Type Conversion10' */
20944 L4_MABX_B.RX_delta_time_kv = L4_MABX_B.SFunction1_o11_p;
20945
20946 /* MultiPortSwitch: '<S446>/Multiport_Switch' incorporates:
20947 * Constant: '<S446>/Constant'
20948 */
20949 switch (PROPB_REAX_CHANNEL_APV) {
20950 case ENUM_CAN_RX_T_RX_CAN_1:
20951 /* DataTypeConversion: '<S584>/Data Type Conversion10' */
20952 L4_MABX_B.RX_delta_time_hd = L4_MABX_B.SFunction1_o11_n;
20953 L4_MABX_B.RX_delta_time_pl = L4_MABX_B.RX_delta_time_hd;
20954 break;
20955
20956 case ENUM_CAN_RX_T_RX_CAN_2:
20957 L4_MABX_B.RX_delta_time_pl = L4_MABX_B.RX_delta_time_jv;
20958 break;
20959
20960 case ENUM_CAN_RX_T_RX_CAN_3:
20961 L4_MABX_B.RX_delta_time_pl = L4_MABX_B.RX_delta_time_jv;
20962 break;
20963
20964 case ENUM_CAN_RX_T_RX_CAN_4:
20965 L4_MABX_B.RX_delta_time_pl = L4_MABX_B.RX_delta_time_jv;
20966 break;
20967
20968 case ENUM_CAN_RX_T_RX_CAN_5:
20969 L4_MABX_B.RX_delta_time_pl = L4_MABX_B.RX_delta_time_jv;
20970 break;
20971
20972 case ENUM_CAN_RX_T_RX_CAN_6:
20973 L4_MABX_B.RX_delta_time_pl = L4_MABX_B.RX_delta_time_kv;
20974 break;
20975
20976 default:
20977 L4_MABX_B.RX_delta_time_pl = L4_MABX_B.RX_delta_time_kv;
20978 break;
20979 }
20980
20981 /* RelationalOperator: '<S593>/Operator' incorporates:
20982 * Constant: '<S446>/Constant'
20983 * Constant: '<S587>/Constant2'
20984 */
20985 L4_MABX_B.Operator_bu = (PROPB_REAX_CHANNEL_APV ==
20986 L4_MABX_P.Constant2_Value_nj);
20987
20988 /* RelationalOperator: '<S594>/Operator' incorporates:
20989 * Constant: '<S446>/Constant'
20990 * Constant: '<S587>/Constant3'
20991 */
20992 L4_MABX_B.Operator_acd = (PROPB_REAX_CHANNEL_APV ==
20993 L4_MABX_P.Constant3_Value_cg);
20994
20995 /* RelationalOperator: '<S595>/Operator' incorporates:
20996 * Constant: '<S446>/Constant'
20997 * Constant: '<S587>/Constant4'
20998 */
20999 L4_MABX_B.Operator_atr = (PROPB_REAX_CHANNEL_APV ==
21000 L4_MABX_P.Constant4_Value_k);
21001
21002 /* RelationalOperator: '<S604>/Operator' incorporates:
21003 * Constant: '<S447>/Constant'
21004 * Constant: '<S600>/Constant'
21005 */
21006 L4_MABX_B.Operator_obt = (PROPB_REAX_CHANNEL_APV ==
21007 L4_MABX_P.Constant_Value_pw);
21008
21009 /* Outputs for Enabled SubSystem: '<S597>/CAN_TYPE1_RX_M1_C1' incorporates:
21010 * EnablePort: '<S601>/Enable'
21011 */
21012 if (L4_MABX_B.Operator_obt) {
21013 /* S-Function (rti_commonblock): '<S601>/S-Function1' */
21014 /* This comment workarounds a code generation problem */
21015
21016 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:419428115 */
21017 {
21018 UInt32 *CAN_Msg;
21019 static dsfloat time_old = 0.0;
21020
21021 /* Read status and timestamp info (previous message) */
21022 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].timestamp !=
21023 time_old) {
21024 /* ... save timestamp info for the calculation of the RX status
21025 during the consecutive sample hit*/
21026 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].
21027 timestamp;
21028
21029 /* ... set the processed flag to one */
21030 L4_MABX_B.SFunction1_o9_f = 1.0;
21031 L4_MABX_B.SFunction1_o10_j = (real_T)
21032 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].timestamp;
21033 L4_MABX_B.SFunction1_o11_j = (real_T)
21034 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].deltatime;
21035 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].data;
21036
21037 /* Decode CAN message */
21038 {
21039 {
21040 rtican_Signal_t CAN_Sgn;
21041
21042 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
21043 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
21044 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21045 L4_MABX_B.SFunction1_o1_df = ((real_T) CAN_Sgn.UnsignedSgn);
21046
21047 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
21048 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
21049 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21050 L4_MABX_B.SFunction1_o2_gb = ((real_T) CAN_Sgn.UnsignedSgn);
21051
21052 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
21053 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
21054 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21055 L4_MABX_B.SFunction1_o3_jx = ((real_T) CAN_Sgn.UnsignedSgn);
21056
21057 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
21058 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
21059 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21060 L4_MABX_B.SFunction1_o4_fu = ((real_T) CAN_Sgn.UnsignedSgn);
21061
21062 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
21063 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
21064 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21065 L4_MABX_B.SFunction1_o5_p4 = ((real_T) CAN_Sgn.UnsignedSgn);
21066
21067 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
21068 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
21069 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21070 L4_MABX_B.SFunction1_o6_fp = ((real_T) CAN_Sgn.UnsignedSgn);
21071
21072 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
21073 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
21074 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21075 L4_MABX_B.SFunction1_o7_c = ((real_T) CAN_Sgn.UnsignedSgn);
21076
21077 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
21078 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
21079 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21080 L4_MABX_B.SFunction1_o8_b = ((real_T) CAN_Sgn.UnsignedSgn);
21081 }
21082 }
21083 } else {
21084 /* set RX status to 0 because no new message has arrived */
21085 L4_MABX_B.SFunction1_o9_f = 0.0;
21086 }
21087 }
21088 }
21089
21090 /* End of Outputs for SubSystem: '<S597>/CAN_TYPE1_RX_M1_C1' */
21091
21092 /* RelationalOperator: '<S605>/Operator' incorporates:
21093 * Constant: '<S447>/Constant'
21094 * Constant: '<S600>/Constant1'
21095 */
21096 L4_MABX_B.Operator_lw = (PROPB_REAX_CHANNEL_APV ==
21097 L4_MABX_P.Constant1_Value_jt);
21098
21099 /* Outputs for Enabled SubSystem: '<S598>/CAN_TYPE1_RX_M1_C2' incorporates:
21100 * EnablePort: '<S602>/Enable'
21101 */
21102 if (L4_MABX_B.Operator_lw) {
21103 /* S-Function (rti_commonblock): '<S602>/S-Function1' */
21104 /* This comment workarounds a code generation problem */
21105
21106 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:419428115 */
21107 {
21108 UInt32 *CAN_Msg;
21109 static dsfloat time_old = 0.0;
21110
21111 /* Read status and timestamp info (previous message) */
21112 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].timestamp !=
21113 time_old) {
21114 /* ... save timestamp info for the calculation of the RX status
21115 during the consecutive sample hit*/
21116 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].
21117 timestamp;
21118
21119 /* ... set the processed flag to one */
21120 L4_MABX_B.SFunction1_o9_m = 1.0;
21121 L4_MABX_B.SFunction1_o10_h = (real_T)
21122 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].timestamp;
21123 L4_MABX_B.SFunction1_o11_h = (real_T)
21124 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].deltatime;
21125 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].data;
21126
21127 /* Decode CAN message */
21128 {
21129 {
21130 rtican_Signal_t CAN_Sgn;
21131
21132 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
21133 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
21134 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21135 L4_MABX_B.SFunction1_o1_nw = ((real_T) CAN_Sgn.UnsignedSgn);
21136
21137 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
21138 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
21139 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21140 L4_MABX_B.SFunction1_o2_k5 = ((real_T) CAN_Sgn.UnsignedSgn);
21141
21142 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
21143 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
21144 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21145 L4_MABX_B.SFunction1_o3_hb = ((real_T) CAN_Sgn.UnsignedSgn);
21146
21147 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
21148 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
21149 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21150 L4_MABX_B.SFunction1_o4_id = ((real_T) CAN_Sgn.UnsignedSgn);
21151
21152 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
21153 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
21154 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21155 L4_MABX_B.SFunction1_o5_cl = ((real_T) CAN_Sgn.UnsignedSgn);
21156
21157 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
21158 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
21159 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21160 L4_MABX_B.SFunction1_o6_l1 = ((real_T) CAN_Sgn.UnsignedSgn);
21161
21162 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
21163 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
21164 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21165 L4_MABX_B.SFunction1_o7_o = ((real_T) CAN_Sgn.UnsignedSgn);
21166
21167 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
21168 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
21169 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21170 L4_MABX_B.SFunction1_o8_dp = ((real_T) CAN_Sgn.UnsignedSgn);
21171 }
21172 }
21173 } else {
21174 /* set RX status to 0 because no new message has arrived */
21175 L4_MABX_B.SFunction1_o9_m = 0.0;
21176 }
21177 }
21178 }
21179
21180 /* End of Outputs for SubSystem: '<S598>/CAN_TYPE1_RX_M1_C2' */
21181
21182 /* RelationalOperator: '<S609>/Operator' incorporates:
21183 * Constant: '<S447>/Constant'
21184 * Constant: '<S600>/Constant5'
21185 */
21186 L4_MABX_B.Operator_m4 = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant5_Value_n);
21187
21188 /* Outputs for Enabled SubSystem: '<S599>/CAN_TYPE1_RX_M3_C2' incorporates:
21189 * EnablePort: '<S603>/Enable'
21190 */
21191 if (L4_MABX_B.Operator_m4) {
21192 /* S-Function (rti_commonblock): '<S603>/S-Function1' */
21193 /* This comment workarounds a code generation problem */
21194
21195 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:486536979 */
21196 {
21197 UInt32 *CAN_Msg;
21198 static dsfloat time_old = 0.0;
21199
21200 /* Read status and timestamp info (previous message) */
21201 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].timestamp !=
21202 time_old) {
21203 /* ... save timestamp info for the calculation of the RX status
21204 during the consecutive sample hit*/
21205 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].
21206 timestamp;
21207
21208 /* ... set the processed flag to one */
21209 L4_MABX_B.SFunction1_o9_g = 1.0;
21210 L4_MABX_B.SFunction1_o10_e = (real_T)
21211 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].timestamp;
21212 L4_MABX_B.SFunction1_o11_d = (real_T)
21213 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].deltatime;
21214 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].data;
21215
21216 /* Decode CAN message */
21217 {
21218 {
21219 rtican_Signal_t CAN_Sgn;
21220
21221 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
21222 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
21223 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21224 L4_MABX_B.SFunction1_o1_m5 = ((real_T) CAN_Sgn.UnsignedSgn);
21225
21226 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
21227 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
21228 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21229 L4_MABX_B.SFunction1_o2_j = ((real_T) CAN_Sgn.UnsignedSgn);
21230
21231 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
21232 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
21233 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21234 L4_MABX_B.SFunction1_o3_fim = ((real_T) CAN_Sgn.UnsignedSgn);
21235
21236 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
21237 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
21238 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21239 L4_MABX_B.SFunction1_o4_n4 = ((real_T) CAN_Sgn.UnsignedSgn);
21240
21241 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
21242 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
21243 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21244 L4_MABX_B.SFunction1_o5_h = ((real_T) CAN_Sgn.UnsignedSgn);
21245
21246 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
21247 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
21248 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21249 L4_MABX_B.SFunction1_o6_dw = ((real_T) CAN_Sgn.UnsignedSgn);
21250
21251 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
21252 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
21253 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21254 L4_MABX_B.SFunction1_o7_a = ((real_T) CAN_Sgn.UnsignedSgn);
21255
21256 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
21257 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
21258 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21259 L4_MABX_B.SFunction1_o8_d = ((real_T) CAN_Sgn.UnsignedSgn);
21260 }
21261 }
21262 } else {
21263 /* set RX status to 0 because no new message has arrived */
21264 L4_MABX_B.SFunction1_o9_g = 0.0;
21265 }
21266 }
21267 }
21268
21269 /* End of Outputs for SubSystem: '<S599>/CAN_TYPE1_RX_M3_C2' */
21270
21271 /* DataTypeConversion: '<S599>/Data Type Conversion' */
21272 PositionFinalLimited = L4_MABX_B.SFunction1_o1_m5;
21273 if (PositionFinalLimited < 256.0) {
21274 if (PositionFinalLimited >= 0.0) {
21275 starting_index = (uint8_T)PositionFinalLimited;
21276 } else {
21277 starting_index = 0U;
21278 }
21279 } else {
21280 starting_index = MAX_uint8_T;
21281 }
21282
21283 L4_MABX_B.DataTypeConversion_d3 = starting_index;
21284
21285 /* End of DataTypeConversion: '<S599>/Data Type Conversion' */
21286
21287 /* DataTypeConversion: '<S599>/Data Type Conversion1' */
21288 PositionFinalLimited = L4_MABX_B.SFunction1_o2_j;
21289 if (PositionFinalLimited < 256.0) {
21290 if (PositionFinalLimited >= 0.0) {
21291 starting_index = (uint8_T)PositionFinalLimited;
21292 } else {
21293 starting_index = 0U;
21294 }
21295 } else {
21296 starting_index = MAX_uint8_T;
21297 }
21298
21299 L4_MABX_B.DataTypeConversion1_hg = starting_index;
21300
21301 /* End of DataTypeConversion: '<S599>/Data Type Conversion1' */
21302
21303 /* DataTypeConversion: '<S599>/Data Type Conversion2' */
21304 PositionFinalLimited = L4_MABX_B.SFunction1_o3_fim;
21305 if (PositionFinalLimited < 256.0) {
21306 if (PositionFinalLimited >= 0.0) {
21307 starting_index = (uint8_T)PositionFinalLimited;
21308 } else {
21309 starting_index = 0U;
21310 }
21311 } else {
21312 starting_index = MAX_uint8_T;
21313 }
21314
21315 L4_MABX_B.DataTypeConversion2_jc = starting_index;
21316
21317 /* End of DataTypeConversion: '<S599>/Data Type Conversion2' */
21318
21319 /* DataTypeConversion: '<S599>/Data Type Conversion3' */
21320 PositionFinalLimited = L4_MABX_B.SFunction1_o4_n4;
21321 if (PositionFinalLimited < 256.0) {
21322 if (PositionFinalLimited >= 0.0) {
21323 starting_index = (uint8_T)PositionFinalLimited;
21324 } else {
21325 starting_index = 0U;
21326 }
21327 } else {
21328 starting_index = MAX_uint8_T;
21329 }
21330
21331 L4_MABX_B.DataTypeConversion3_o3 = starting_index;
21332
21333 /* End of DataTypeConversion: '<S599>/Data Type Conversion3' */
21334
21335 /* DataTypeConversion: '<S599>/Data Type Conversion4' */
21336 PositionFinalLimited = L4_MABX_B.SFunction1_o5_h;
21337 if (PositionFinalLimited < 256.0) {
21338 if (PositionFinalLimited >= 0.0) {
21339 starting_index = (uint8_T)PositionFinalLimited;
21340 } else {
21341 starting_index = 0U;
21342 }
21343 } else {
21344 starting_index = MAX_uint8_T;
21345 }
21346
21347 L4_MABX_B.DataTypeConversion4_b4 = starting_index;
21348
21349 /* End of DataTypeConversion: '<S599>/Data Type Conversion4' */
21350
21351 /* DataTypeConversion: '<S599>/Data Type Conversion5' */
21352 PositionFinalLimited = L4_MABX_B.SFunction1_o6_dw;
21353 if (PositionFinalLimited < 256.0) {
21354 if (PositionFinalLimited >= 0.0) {
21355 starting_index = (uint8_T)PositionFinalLimited;
21356 } else {
21357 starting_index = 0U;
21358 }
21359 } else {
21360 starting_index = MAX_uint8_T;
21361 }
21362
21363 L4_MABX_B.DataTypeConversion5_lc = starting_index;
21364
21365 /* End of DataTypeConversion: '<S599>/Data Type Conversion5' */
21366
21367 /* DataTypeConversion: '<S599>/Data Type Conversion6' */
21368 PositionFinalLimited = L4_MABX_B.SFunction1_o7_a;
21369 if (PositionFinalLimited < 256.0) {
21370 if (PositionFinalLimited >= 0.0) {
21371 starting_index = (uint8_T)PositionFinalLimited;
21372 } else {
21373 starting_index = 0U;
21374 }
21375 } else {
21376 starting_index = MAX_uint8_T;
21377 }
21378
21379 L4_MABX_B.DataTypeConversion6_ds = starting_index;
21380
21381 /* End of DataTypeConversion: '<S599>/Data Type Conversion6' */
21382
21383 /* DataTypeConversion: '<S599>/Data Type Conversion7' */
21384 PositionFinalLimited = L4_MABX_B.SFunction1_o8_d;
21385 if (PositionFinalLimited < 256.0) {
21386 if (PositionFinalLimited >= 0.0) {
21387 starting_index = (uint8_T)PositionFinalLimited;
21388 } else {
21389 starting_index = 0U;
21390 }
21391 } else {
21392 starting_index = MAX_uint8_T;
21393 }
21394
21395 L4_MABX_B.DataTypeConversion7_nm = starting_index;
21396
21397 /* End of DataTypeConversion: '<S599>/Data Type Conversion7' */
21398
21399 /* MultiPortSwitch: '<S447>/Multiport_Switch' incorporates:
21400 * Constant: '<S447>/Constant'
21401 */
21402 switch (PROPB_REAX_CHANNEL_APV) {
21403 case ENUM_CAN_RX_T_RX_CAN_1:
21404 /* DataTypeConversion: '<S597>/Data Type Conversion' */
21405 PositionFinalLimited = L4_MABX_B.SFunction1_o1_df;
21406 if (PositionFinalLimited < 256.0) {
21407 if (PositionFinalLimited >= 0.0) {
21408 starting_index = (uint8_T)PositionFinalLimited;
21409 } else {
21410 starting_index = 0U;
21411 }
21412 } else {
21413 starting_index = MAX_uint8_T;
21414 }
21415
21416 L4_MABX_B.DataTypeConversion_ey = starting_index;
21417
21418 /* End of DataTypeConversion: '<S597>/Data Type Conversion' */
21419
21420 /* DataTypeConversion: '<S597>/Data Type Conversion1' */
21421 PositionFinalLimited = L4_MABX_B.SFunction1_o2_gb;
21422 if (PositionFinalLimited < 256.0) {
21423 if (PositionFinalLimited >= 0.0) {
21424 starting_index = (uint8_T)PositionFinalLimited;
21425 } else {
21426 starting_index = 0U;
21427 }
21428 } else {
21429 starting_index = MAX_uint8_T;
21430 }
21431
21432 L4_MABX_B.DataTypeConversion1_ch = starting_index;
21433
21434 /* End of DataTypeConversion: '<S597>/Data Type Conversion1' */
21435
21436 /* DataTypeConversion: '<S597>/Data Type Conversion2' */
21437 PositionFinalLimited = L4_MABX_B.SFunction1_o3_jx;
21438 if (PositionFinalLimited < 256.0) {
21439 if (PositionFinalLimited >= 0.0) {
21440 starting_index = (uint8_T)PositionFinalLimited;
21441 } else {
21442 starting_index = 0U;
21443 }
21444 } else {
21445 starting_index = MAX_uint8_T;
21446 }
21447
21448 L4_MABX_B.DataTypeConversion2_mg = starting_index;
21449
21450 /* End of DataTypeConversion: '<S597>/Data Type Conversion2' */
21451
21452 /* DataTypeConversion: '<S597>/Data Type Conversion3' */
21453 PositionFinalLimited = L4_MABX_B.SFunction1_o4_fu;
21454 if (PositionFinalLimited < 256.0) {
21455 if (PositionFinalLimited >= 0.0) {
21456 starting_index = (uint8_T)PositionFinalLimited;
21457 } else {
21458 starting_index = 0U;
21459 }
21460 } else {
21461 starting_index = MAX_uint8_T;
21462 }
21463
21464 L4_MABX_B.DataTypeConversion3_fh = starting_index;
21465
21466 /* End of DataTypeConversion: '<S597>/Data Type Conversion3' */
21467
21468 /* DataTypeConversion: '<S597>/Data Type Conversion4' */
21469 PositionFinalLimited = L4_MABX_B.SFunction1_o5_p4;
21470 if (PositionFinalLimited < 256.0) {
21471 if (PositionFinalLimited >= 0.0) {
21472 starting_index = (uint8_T)PositionFinalLimited;
21473 } else {
21474 starting_index = 0U;
21475 }
21476 } else {
21477 starting_index = MAX_uint8_T;
21478 }
21479
21480 L4_MABX_B.DataTypeConversion4_k = starting_index;
21481
21482 /* End of DataTypeConversion: '<S597>/Data Type Conversion4' */
21483
21484 /* DataTypeConversion: '<S597>/Data Type Conversion5' */
21485 PositionFinalLimited = L4_MABX_B.SFunction1_o6_fp;
21486 if (PositionFinalLimited < 256.0) {
21487 if (PositionFinalLimited >= 0.0) {
21488 starting_index = (uint8_T)PositionFinalLimited;
21489 } else {
21490 starting_index = 0U;
21491 }
21492 } else {
21493 starting_index = MAX_uint8_T;
21494 }
21495
21496 L4_MABX_B.DataTypeConversion5_k = starting_index;
21497
21498 /* End of DataTypeConversion: '<S597>/Data Type Conversion5' */
21499
21500 /* DataTypeConversion: '<S597>/Data Type Conversion6' */
21501 PositionFinalLimited = L4_MABX_B.SFunction1_o7_c;
21502 if (PositionFinalLimited < 256.0) {
21503 if (PositionFinalLimited >= 0.0) {
21504 starting_index = (uint8_T)PositionFinalLimited;
21505 } else {
21506 starting_index = 0U;
21507 }
21508 } else {
21509 starting_index = MAX_uint8_T;
21510 }
21511
21512 L4_MABX_B.DataTypeConversion6_n00 = starting_index;
21513
21514 /* End of DataTypeConversion: '<S597>/Data Type Conversion6' */
21515
21516 /* DataTypeConversion: '<S597>/Data Type Conversion7' */
21517 PositionFinalLimited = L4_MABX_B.SFunction1_o8_b;
21518 if (PositionFinalLimited < 256.0) {
21519 if (PositionFinalLimited >= 0.0) {
21520 starting_index = (uint8_T)PositionFinalLimited;
21521 } else {
21522 starting_index = 0U;
21523 }
21524 } else {
21525 starting_index = MAX_uint8_T;
21526 }
21527
21528 L4_MABX_B.DataTypeConversion7_le = starting_index;
21529
21530 /* End of DataTypeConversion: '<S597>/Data Type Conversion7' */
21531 L4_MABX_B.RawData_n[0] = L4_MABX_B.DataTypeConversion_ey;
21532 L4_MABX_B.RawData_n[1] = L4_MABX_B.DataTypeConversion1_ch;
21533 L4_MABX_B.RawData_n[2] = L4_MABX_B.DataTypeConversion2_mg;
21534 L4_MABX_B.RawData_n[3] = L4_MABX_B.DataTypeConversion3_fh;
21535 L4_MABX_B.RawData_n[4] = L4_MABX_B.DataTypeConversion4_k;
21536 L4_MABX_B.RawData_n[5] = L4_MABX_B.DataTypeConversion5_k;
21537 L4_MABX_B.RawData_n[6] = L4_MABX_B.DataTypeConversion6_n00;
21538 L4_MABX_B.RawData_n[7] = L4_MABX_B.DataTypeConversion7_le;
21539 break;
21540
21541 case ENUM_CAN_RX_T_RX_CAN_2:
21542 /* DataTypeConversion: '<S598>/Data Type Conversion' */
21543 PositionFinalLimited = L4_MABX_B.SFunction1_o1_nw;
21544 if (PositionFinalLimited < 256.0) {
21545 if (PositionFinalLimited >= 0.0) {
21546 starting_index = (uint8_T)PositionFinalLimited;
21547 } else {
21548 starting_index = 0U;
21549 }
21550 } else {
21551 starting_index = MAX_uint8_T;
21552 }
21553
21554 L4_MABX_B.DataTypeConversion_nd = starting_index;
21555
21556 /* End of DataTypeConversion: '<S598>/Data Type Conversion' */
21557
21558 /* DataTypeConversion: '<S598>/Data Type Conversion1' */
21559 PositionFinalLimited = L4_MABX_B.SFunction1_o2_k5;
21560 if (PositionFinalLimited < 256.0) {
21561 if (PositionFinalLimited >= 0.0) {
21562 starting_index = (uint8_T)PositionFinalLimited;
21563 } else {
21564 starting_index = 0U;
21565 }
21566 } else {
21567 starting_index = MAX_uint8_T;
21568 }
21569
21570 L4_MABX_B.DataTypeConversion1_iy = starting_index;
21571
21572 /* End of DataTypeConversion: '<S598>/Data Type Conversion1' */
21573
21574 /* DataTypeConversion: '<S598>/Data Type Conversion2' */
21575 PositionFinalLimited = L4_MABX_B.SFunction1_o3_hb;
21576 if (PositionFinalLimited < 256.0) {
21577 if (PositionFinalLimited >= 0.0) {
21578 starting_index = (uint8_T)PositionFinalLimited;
21579 } else {
21580 starting_index = 0U;
21581 }
21582 } else {
21583 starting_index = MAX_uint8_T;
21584 }
21585
21586 L4_MABX_B.DataTypeConversion2_bf = starting_index;
21587
21588 /* End of DataTypeConversion: '<S598>/Data Type Conversion2' */
21589
21590 /* DataTypeConversion: '<S598>/Data Type Conversion3' */
21591 PositionFinalLimited = L4_MABX_B.SFunction1_o4_id;
21592 if (PositionFinalLimited < 256.0) {
21593 if (PositionFinalLimited >= 0.0) {
21594 starting_index = (uint8_T)PositionFinalLimited;
21595 } else {
21596 starting_index = 0U;
21597 }
21598 } else {
21599 starting_index = MAX_uint8_T;
21600 }
21601
21602 L4_MABX_B.DataTypeConversion3_gs = starting_index;
21603
21604 /* End of DataTypeConversion: '<S598>/Data Type Conversion3' */
21605
21606 /* DataTypeConversion: '<S598>/Data Type Conversion4' */
21607 PositionFinalLimited = L4_MABX_B.SFunction1_o5_cl;
21608 if (PositionFinalLimited < 256.0) {
21609 if (PositionFinalLimited >= 0.0) {
21610 starting_index = (uint8_T)PositionFinalLimited;
21611 } else {
21612 starting_index = 0U;
21613 }
21614 } else {
21615 starting_index = MAX_uint8_T;
21616 }
21617
21618 L4_MABX_B.DataTypeConversion4_ne = starting_index;
21619
21620 /* End of DataTypeConversion: '<S598>/Data Type Conversion4' */
21621
21622 /* DataTypeConversion: '<S598>/Data Type Conversion5' */
21623 PositionFinalLimited = L4_MABX_B.SFunction1_o6_l1;
21624 if (PositionFinalLimited < 256.0) {
21625 if (PositionFinalLimited >= 0.0) {
21626 starting_index = (uint8_T)PositionFinalLimited;
21627 } else {
21628 starting_index = 0U;
21629 }
21630 } else {
21631 starting_index = MAX_uint8_T;
21632 }
21633
21634 L4_MABX_B.DataTypeConversion5_ks = starting_index;
21635
21636 /* End of DataTypeConversion: '<S598>/Data Type Conversion5' */
21637
21638 /* DataTypeConversion: '<S598>/Data Type Conversion6' */
21639 PositionFinalLimited = L4_MABX_B.SFunction1_o7_o;
21640 if (PositionFinalLimited < 256.0) {
21641 if (PositionFinalLimited >= 0.0) {
21642 starting_index = (uint8_T)PositionFinalLimited;
21643 } else {
21644 starting_index = 0U;
21645 }
21646 } else {
21647 starting_index = MAX_uint8_T;
21648 }
21649
21650 L4_MABX_B.DataTypeConversion6_b = starting_index;
21651
21652 /* End of DataTypeConversion: '<S598>/Data Type Conversion6' */
21653
21654 /* DataTypeConversion: '<S598>/Data Type Conversion7' */
21655 PositionFinalLimited = L4_MABX_B.SFunction1_o8_dp;
21656 if (PositionFinalLimited < 256.0) {
21657 if (PositionFinalLimited >= 0.0) {
21658 starting_index = (uint8_T)PositionFinalLimited;
21659 } else {
21660 starting_index = 0U;
21661 }
21662 } else {
21663 starting_index = MAX_uint8_T;
21664 }
21665
21666 L4_MABX_B.DataTypeConversion7_b = starting_index;
21667
21668 /* End of DataTypeConversion: '<S598>/Data Type Conversion7' */
21669 L4_MABX_B.RawData_n[0] = L4_MABX_B.DataTypeConversion_nd;
21670 L4_MABX_B.RawData_n[1] = L4_MABX_B.DataTypeConversion1_iy;
21671 L4_MABX_B.RawData_n[2] = L4_MABX_B.DataTypeConversion2_bf;
21672 L4_MABX_B.RawData_n[3] = L4_MABX_B.DataTypeConversion3_gs;
21673 L4_MABX_B.RawData_n[4] = L4_MABX_B.DataTypeConversion4_ne;
21674 L4_MABX_B.RawData_n[5] = L4_MABX_B.DataTypeConversion5_ks;
21675 L4_MABX_B.RawData_n[6] = L4_MABX_B.DataTypeConversion6_b;
21676 L4_MABX_B.RawData_n[7] = L4_MABX_B.DataTypeConversion7_b;
21677 break;
21678
21679 case ENUM_CAN_RX_T_RX_CAN_3:
21680 L4_MABX_B.RawData_n[0] = L4_MABX_B.DataTypeConversion_d3;
21681 L4_MABX_B.RawData_n[1] = L4_MABX_B.DataTypeConversion1_hg;
21682 L4_MABX_B.RawData_n[2] = L4_MABX_B.DataTypeConversion2_jc;
21683 L4_MABX_B.RawData_n[3] = L4_MABX_B.DataTypeConversion3_o3;
21684 L4_MABX_B.RawData_n[4] = L4_MABX_B.DataTypeConversion4_b4;
21685 L4_MABX_B.RawData_n[5] = L4_MABX_B.DataTypeConversion5_lc;
21686 L4_MABX_B.RawData_n[6] = L4_MABX_B.DataTypeConversion6_ds;
21687 L4_MABX_B.RawData_n[7] = L4_MABX_B.DataTypeConversion7_nm;
21688 break;
21689
21690 case ENUM_CAN_RX_T_RX_CAN_4:
21691 L4_MABX_B.RawData_n[0] = L4_MABX_B.DataTypeConversion_d3;
21692 L4_MABX_B.RawData_n[1] = L4_MABX_B.DataTypeConversion1_hg;
21693 L4_MABX_B.RawData_n[2] = L4_MABX_B.DataTypeConversion2_jc;
21694 L4_MABX_B.RawData_n[3] = L4_MABX_B.DataTypeConversion3_o3;
21695 L4_MABX_B.RawData_n[4] = L4_MABX_B.DataTypeConversion4_b4;
21696 L4_MABX_B.RawData_n[5] = L4_MABX_B.DataTypeConversion5_lc;
21697 L4_MABX_B.RawData_n[6] = L4_MABX_B.DataTypeConversion6_ds;
21698 L4_MABX_B.RawData_n[7] = L4_MABX_B.DataTypeConversion7_nm;
21699 break;
21700
21701 case ENUM_CAN_RX_T_RX_CAN_5:
21702 L4_MABX_B.RawData_n[0] = L4_MABX_B.DataTypeConversion_d3;
21703 L4_MABX_B.RawData_n[1] = L4_MABX_B.DataTypeConversion1_hg;
21704 L4_MABX_B.RawData_n[2] = L4_MABX_B.DataTypeConversion2_jc;
21705 L4_MABX_B.RawData_n[3] = L4_MABX_B.DataTypeConversion3_o3;
21706 L4_MABX_B.RawData_n[4] = L4_MABX_B.DataTypeConversion4_b4;
21707 L4_MABX_B.RawData_n[5] = L4_MABX_B.DataTypeConversion5_lc;
21708 L4_MABX_B.RawData_n[6] = L4_MABX_B.DataTypeConversion6_ds;
21709 L4_MABX_B.RawData_n[7] = L4_MABX_B.DataTypeConversion7_nm;
21710 break;
21711
21712 case ENUM_CAN_RX_T_RX_CAN_6:
21713 L4_MABX_B.RawData_n[0] = L4_MABX_B.DataTypeConversion_d3;
21714 L4_MABX_B.RawData_n[1] = L4_MABX_B.DataTypeConversion1_hg;
21715 L4_MABX_B.RawData_n[2] = L4_MABX_B.DataTypeConversion2_jc;
21716 L4_MABX_B.RawData_n[3] = L4_MABX_B.DataTypeConversion3_o3;
21717 L4_MABX_B.RawData_n[4] = L4_MABX_B.DataTypeConversion4_b4;
21718 L4_MABX_B.RawData_n[5] = L4_MABX_B.DataTypeConversion5_lc;
21719 L4_MABX_B.RawData_n[6] = L4_MABX_B.DataTypeConversion6_ds;
21720 L4_MABX_B.RawData_n[7] = L4_MABX_B.DataTypeConversion7_nm;
21721 break;
21722
21723 default:
21724 L4_MABX_B.RawData_n[0] = L4_MABX_B.DataTypeConversion_d3;
21725 L4_MABX_B.RawData_n[1] = L4_MABX_B.DataTypeConversion1_hg;
21726 L4_MABX_B.RawData_n[2] = L4_MABX_B.DataTypeConversion2_jc;
21727 L4_MABX_B.RawData_n[3] = L4_MABX_B.DataTypeConversion3_o3;
21728 L4_MABX_B.RawData_n[4] = L4_MABX_B.DataTypeConversion4_b4;
21729 L4_MABX_B.RawData_n[5] = L4_MABX_B.DataTypeConversion5_lc;
21730 L4_MABX_B.RawData_n[6] = L4_MABX_B.DataTypeConversion6_ds;
21731 L4_MABX_B.RawData_n[7] = L4_MABX_B.DataTypeConversion7_nm;
21732 break;
21733 }
21734
21735 /* S-Function (sfix_bitop): '<S686>/Operator' */
21736 L4_MABX_B.Operator_fa = (uint8_T)(L4_MABX_B.RawData_n[0] &
21737 L4_MABX_P.Operator_BitMask_hh);
21738
21739 /* DataTypeConversion: '<S686>/DataType' */
21740 L4_MABX_B.DataType_da = L4_MABX_B.Operator_fa;
21741
21742 /* ArithShift: '<S679>/Shift_Arithmetic ' */
21743 L4_MABX_B.Shift_Arithmetic_ce = (uint8_T)((uint32_T)L4_MABX_B.DataType_da >> 1);
21744
21745 /* DataTypeConversion: '<S679>/Data Type Conversion' */
21746 L4_MABX_B.PropB_REAX_4_PositionIndexValid = (L4_MABX_B.Shift_Arithmetic_ce !=
21747 0);
21748
21749 /* DataTypeConversion: '<S422>/Data Type Conversion' */
21750 L4_MABX_B.DataTypeConversion_oxt = L4_MABX_B.PropB_REAX_4_PositionIndexValid;
21751
21752 /* S-Function (sfix_bitop): '<S685>/Operator' */
21753 L4_MABX_B.Operator_iu = (uint8_T)(L4_MABX_B.RawData_n[0] &
21754 L4_MABX_P.Operator_BitMask_jf);
21755
21756 /* DataTypeConversion: '<S685>/DataType' */
21757 L4_MABX_B.DataType_iv = (L4_MABX_B.Operator_iu != 0);
21758
21759 /* DataTypeConversion: '<S422>/Data Type Conversion1' */
21760 L4_MABX_B.DataTypeConversion1_b5 = L4_MABX_B.DataType_iv;
21761
21762 /* S-Function (sfix_bitop): '<S687>/Operator' */
21763 L4_MABX_B.Operator_as = (uint8_T)(L4_MABX_B.RawData_n[0] &
21764 L4_MABX_P.Operator_BitMask_c);
21765
21766 /* DataTypeConversion: '<S687>/DataType' */
21767 L4_MABX_B.DataType_h4 = L4_MABX_B.Operator_as;
21768
21769 /* ArithShift: '<S679>/Shift_Arithmetic 1' */
21770 L4_MABX_B.Shift_Arithmetic1_fx = (uint8_T)((uint32_T)L4_MABX_B.DataType_h4 >>
21771 2);
21772
21773 /* DataTypeConversion: '<S679>/Data Type Conversion1' */
21774 L4_MABX_B.PropB_REAX_4_DriverControlledEf = (L4_MABX_B.Shift_Arithmetic1_fx !=
21775 0);
21776
21777 /* DataTypeConversion: '<S422>/Data Type Conversion2' */
21778 L4_MABX_B.DataTypeConversion2_bo = L4_MABX_B.PropB_REAX_4_DriverControlledEf;
21779
21780 /* SignalConversion: '<S680>/SignalConversion' */
21781 L4_MABX_B.PropB_REAX_4_ControlOperatingMo = L4_MABX_B.RawData_n[1];
21782
21783 /* DataTypeConversion: '<S422>/Data Type Conversion3' */
21784 L4_MABX_B.DataTypeConversion3_gf = L4_MABX_B.PropB_REAX_4_ControlOperatingMo;
21785
21786 /* SignalConversion: '<S681>/SignalConversion' */
21787 L4_MABX_B.PropB_REAX_4_SystemMode = L4_MABX_B.RawData_n[2];
21788
21789 /* DataTypeConversion: '<S422>/Data Type Conversion4' */
21790 L4_MABX_B.DataTypeConversion4_d = L4_MABX_B.PropB_REAX_4_SystemMode;
21791
21792 /* DataTypeConversion: '<S682>/Data Type Conversion4' */
21793 L4_MABX_B.DataTypeConversion4_go = (int8_T)L4_MABX_B.RawData_n[4];
21794
21795 /* DataTypeConversion: '<S682>/Data Type Conversion5' */
21796 L4_MABX_B.PropB_REAX_4_PercHandwheelTorqu = L4_MABX_B.DataTypeConversion4_go;
21797
21798 /* DataTypeConversion: '<S422>/Data Type Conversion5' */
21799 L4_MABX_B.DataTypeConversion5_e = L4_MABX_B.PropB_REAX_4_PercHandwheelTorqu;
21800
21801 /* DataTypeConversion: '<S683>/Data Type Conversion6' */
21802 L4_MABX_B.DataTypeConversion6_c = L4_MABX_B.RawData_n[5];
21803
21804 /* DataTypeConversion: '<S683>/Data Type Conversion7' */
21805 L4_MABX_B.DataTypeConversion7_f = L4_MABX_B.RawData_n[6];
21806
21807 /* ArithShift: '<S683>/Shift_Arithmetic 2' */
21808 L4_MABX_B.Shift_Arithmetic2_d = (uint16_T)(L4_MABX_B.DataTypeConversion7_f <<
21809 8);
21810
21811 /* S-Function (sfix_bitop): '<S688>/Operator' */
21812 L4_MABX_B.Operator_o2 = (uint16_T)(L4_MABX_B.DataTypeConversion6_c |
21813 L4_MABX_B.Shift_Arithmetic2_d);
21814
21815 /* DataTypeConversion: '<S688>/DataType' */
21816 L4_MABX_B.DataType_ej = L4_MABX_B.Operator_o2;
21817
21818 /* DataTypeConversion: '<S683>/Data Type Conversion8' */
21819 L4_MABX_B.DataTypeConversion8_cm = (int16_T)L4_MABX_B.DataType_ej;
21820
21821 /* DataTypeConversion: '<S683>/Data Type Conversion9' */
21822 L4_MABX_B.PropB_REAX_4_AbsSteeringAngle = L4_MABX_B.DataTypeConversion8_cm;
21823
21824 /* DataTypeConversion: '<S422>/Data Type Conversion6' */
21825 L4_MABX_B.DataTypeConversion6_o = L4_MABX_B.PropB_REAX_4_AbsSteeringAngle;
21826
21827 /* DataTypeConversion: '<S684>/Data Type Conversion10' */
21828 L4_MABX_B.DataTypeConversion10_a = (int8_T)L4_MABX_B.RawData_n[7];
21829
21830 /* DataTypeConversion: '<S684>/Data Type Conversion11' */
21831 L4_MABX_B.PropB_REAX_4_PercMotorTorque = L4_MABX_B.DataTypeConversion10_a;
21832
21833 /* DataTypeConversion: '<S422>/Data Type Conversion7' */
21834 L4_MABX_B.DataTypeConversion7_k = L4_MABX_B.PropB_REAX_4_PercMotorTorque;
21835
21836 /* DataTypeConversion: '<S599>/Data Type Conversion8' */
21837 L4_MABX_B.RX_status_cm = (L4_MABX_B.SFunction1_o9_g != 0.0);
21838
21839 /* MultiPortSwitch: '<S447>/Multiport_Switch' incorporates:
21840 * Constant: '<S447>/Constant'
21841 */
21842 switch (PROPB_REAX_CHANNEL_APV) {
21843 case ENUM_CAN_RX_T_RX_CAN_1:
21844 /* DataTypeConversion: '<S597>/Data Type Conversion8' */
21845 L4_MABX_B.RX_status_hw = (L4_MABX_B.SFunction1_o9_f != 0.0);
21846 L4_MABX_B.RX_status_n3 = L4_MABX_B.RX_status_hw;
21847 break;
21848
21849 case ENUM_CAN_RX_T_RX_CAN_2:
21850 /* DataTypeConversion: '<S598>/Data Type Conversion8' */
21851 L4_MABX_B.RX_status_p = (L4_MABX_B.SFunction1_o9_m != 0.0);
21852 L4_MABX_B.RX_status_n3 = L4_MABX_B.RX_status_p;
21853 break;
21854
21855 case ENUM_CAN_RX_T_RX_CAN_3:
21856 L4_MABX_B.RX_status_n3 = L4_MABX_B.RX_status_cm;
21857 break;
21858
21859 case ENUM_CAN_RX_T_RX_CAN_4:
21860 L4_MABX_B.RX_status_n3 = L4_MABX_B.RX_status_cm;
21861 break;
21862
21863 case ENUM_CAN_RX_T_RX_CAN_5:
21864 L4_MABX_B.RX_status_n3 = L4_MABX_B.RX_status_cm;
21865 break;
21866
21867 case ENUM_CAN_RX_T_RX_CAN_6:
21868 L4_MABX_B.RX_status_n3 = L4_MABX_B.RX_status_cm;
21869 break;
21870
21871 default:
21872 L4_MABX_B.RX_status_n3 = L4_MABX_B.RX_status_cm;
21873 break;
21874 }
21875
21876 /* DataTypeConversion: '<S599>/Data Type Conversion9' */
21877 L4_MABX_B.RX_time_pq = L4_MABX_B.SFunction1_o10_e;
21878
21879 /* MultiPortSwitch: '<S447>/Multiport_Switch' incorporates:
21880 * Constant: '<S447>/Constant'
21881 */
21882 switch (PROPB_REAX_CHANNEL_APV) {
21883 case ENUM_CAN_RX_T_RX_CAN_1:
21884 /* DataTypeConversion: '<S597>/Data Type Conversion9' */
21885 L4_MABX_B.RX_time_p0 = L4_MABX_B.SFunction1_o10_j;
21886 L4_MABX_B.RX_time_jh = L4_MABX_B.RX_time_p0;
21887 break;
21888
21889 case ENUM_CAN_RX_T_RX_CAN_2:
21890 /* DataTypeConversion: '<S598>/Data Type Conversion9' */
21891 L4_MABX_B.RX_time_a3 = L4_MABX_B.SFunction1_o10_h;
21892 L4_MABX_B.RX_time_jh = L4_MABX_B.RX_time_a3;
21893 break;
21894
21895 case ENUM_CAN_RX_T_RX_CAN_3:
21896 L4_MABX_B.RX_time_jh = L4_MABX_B.RX_time_pq;
21897 break;
21898
21899 case ENUM_CAN_RX_T_RX_CAN_4:
21900 L4_MABX_B.RX_time_jh = L4_MABX_B.RX_time_pq;
21901 break;
21902
21903 case ENUM_CAN_RX_T_RX_CAN_5:
21904 L4_MABX_B.RX_time_jh = L4_MABX_B.RX_time_pq;
21905 break;
21906
21907 case ENUM_CAN_RX_T_RX_CAN_6:
21908 L4_MABX_B.RX_time_jh = L4_MABX_B.RX_time_pq;
21909 break;
21910
21911 default:
21912 L4_MABX_B.RX_time_jh = L4_MABX_B.RX_time_pq;
21913 break;
21914 }
21915
21916 /* DataTypeConversion: '<S599>/Data Type Conversion10' */
21917 L4_MABX_B.RX_delta_time_hn = L4_MABX_B.SFunction1_o11_d;
21918
21919 /* MultiPortSwitch: '<S447>/Multiport_Switch' incorporates:
21920 * Constant: '<S447>/Constant'
21921 */
21922 switch (PROPB_REAX_CHANNEL_APV) {
21923 case ENUM_CAN_RX_T_RX_CAN_1:
21924 /* DataTypeConversion: '<S597>/Data Type Conversion10' */
21925 L4_MABX_B.RX_delta_time_bd = L4_MABX_B.SFunction1_o11_j;
21926 L4_MABX_B.RX_delta_time_af = L4_MABX_B.RX_delta_time_bd;
21927 break;
21928
21929 case ENUM_CAN_RX_T_RX_CAN_2:
21930 /* DataTypeConversion: '<S598>/Data Type Conversion10' */
21931 L4_MABX_B.RX_delta_time_ot = L4_MABX_B.SFunction1_o11_h;
21932 L4_MABX_B.RX_delta_time_af = L4_MABX_B.RX_delta_time_ot;
21933 break;
21934
21935 case ENUM_CAN_RX_T_RX_CAN_3:
21936 L4_MABX_B.RX_delta_time_af = L4_MABX_B.RX_delta_time_hn;
21937 break;
21938
21939 case ENUM_CAN_RX_T_RX_CAN_4:
21940 L4_MABX_B.RX_delta_time_af = L4_MABX_B.RX_delta_time_hn;
21941 break;
21942
21943 case ENUM_CAN_RX_T_RX_CAN_5:
21944 L4_MABX_B.RX_delta_time_af = L4_MABX_B.RX_delta_time_hn;
21945 break;
21946
21947 case ENUM_CAN_RX_T_RX_CAN_6:
21948 L4_MABX_B.RX_delta_time_af = L4_MABX_B.RX_delta_time_hn;
21949 break;
21950
21951 default:
21952 L4_MABX_B.RX_delta_time_af = L4_MABX_B.RX_delta_time_hn;
21953 break;
21954 }
21955
21956 /* RelationalOperator: '<S606>/Operator' incorporates:
21957 * Constant: '<S447>/Constant'
21958 * Constant: '<S600>/Constant2'
21959 */
21960 L4_MABX_B.Operator_l2 = (PROPB_REAX_CHANNEL_APV ==
21961 L4_MABX_P.Constant2_Value_o3);
21962
21963 /* RelationalOperator: '<S607>/Operator' incorporates:
21964 * Constant: '<S447>/Constant'
21965 * Constant: '<S600>/Constant3'
21966 */
21967 L4_MABX_B.Operator_pww = (PROPB_REAX_CHANNEL_APV ==
21968 L4_MABX_P.Constant3_Value_o);
21969
21970 /* RelationalOperator: '<S608>/Operator' incorporates:
21971 * Constant: '<S447>/Constant'
21972 * Constant: '<S600>/Constant4'
21973 */
21974 L4_MABX_B.Operator_bg = (PROPB_REAX_CHANNEL_APV ==
21975 L4_MABX_P.Constant4_Value_nk);
21976
21977 /* S-Function (rti_commonblock): '<S462>/S-Function1' */
21978 /* This comment workarounds a code generation problem */
21979
21980 /* S-Function (rti_commonblock): '<S463>/S-Function1' */
21981 /* This comment workarounds a code generation problem */
21982
21983 /* S-Function (rti_commonblock): '<S464>/S-Function1' */
21984 /* This comment workarounds a code generation problem */
21985
21986 /* S-Function (rti_commonblock): '<S465>/S-Function1' */
21987 /* This comment workarounds a code generation problem */
21988
21989 /* S-Function (rti_commonblock): '<S466>/S-Function1' */
21990 /* This comment workarounds a code generation problem */
21991
21992 /* S-Function (rti_commonblock): '<S467>/S-Function1' */
21993 /* This comment workarounds a code generation problem */
21994
21995 /* S-Function (rti_commonblock): '<S739>/S-Function1' */
21996 /* This comment workarounds a code generation problem */
21997
21998 /* DataTypeConversion: '<S418>/LogPbActive' */
21999 L4_MABX_B.LogPbActive = L4_MABX_B.SFunction1_e;
22000
22001 /* Logic: '<S418>/Logical Operator2' */
22002 L4_MABX_B.LogicalOperator2_n = !L4_MABX_B.LogPbActive;
22003
22004 /* RelationalOperator: '<S753>/Compare' incorporates:
22005 * Constant: '<S753>/Constant'
22006 */
22007 L4_MABX_B.Compare_e = ((int32_T)L4_MABX_B.LogicalOperator2_n > (int32_T)
22008 L4_MABX_P.Constant_Value_ox);
22009
22010 /* UnitDelay: '<S749>/Delay Input1' */
22011 L4_MABX_B.Uk1_fn = L4_MABX_DW.DelayInput1_DSTATE_e;
22012
22013 /* RelationalOperator: '<S749>/FixPt Relational Operator' */
22014 L4_MABX_B.FixPtRelationalOperator_d = ((int32_T)L4_MABX_B.Compare_e > (int32_T)
22015 L4_MABX_B.Uk1_fn);
22016
22017 /* UnitDelay: '<S750>/Unit Delay' */
22018 L4_MABX_B.UnitDelay_k = L4_MABX_DW.UnitDelay_DSTATE_i;
22019
22020 /* UnitDelay: '<S744>/Unit Delay' */
22021 L4_MABX_B.UnitDelay_bw = L4_MABX_DW.UnitDelay_DSTATE_de;
22022
22023 /* RelationalOperator: '<S752>/Compare' incorporates:
22024 * Constant: '<S752>/Constant'
22025 */
22026 L4_MABX_B.Compare_b0 = ((int32_T)L4_MABX_B.UnitDelay_bw <= (int32_T)
22027 L4_MABX_P.Constant_Value_hf);
22028
22029 /* UnitDelay: '<S748>/Delay Input1' */
22030 L4_MABX_B.Uk1_l = L4_MABX_DW.DelayInput1_DSTATE_h;
22031
22032 /* RelationalOperator: '<S748>/FixPt Relational Operator' */
22033 L4_MABX_B.FixPtRelationalOperator_o = ((int32_T)L4_MABX_B.Compare_b0 >
22034 (int32_T)L4_MABX_B.Uk1_l);
22035
22036 /* UnitDelay: '<S750>/Unit Delay1' */
22037 L4_MABX_B.UnitDelay1_a = L4_MABX_DW.UnitDelay1_DSTATE_o;
22038
22039 /* Logic: '<S750>/OR1' */
22040 L4_MABX_B.OR1_n = (L4_MABX_B.FixPtRelationalOperator_o ||
22041 L4_MABX_B.UnitDelay1_a);
22042
22043 /* Switch: '<S750>/Switch' incorporates:
22044 * Constant: '<S750>/Constant0'
22045 */
22046 if (L4_MABX_B.OR1_n) {
22047 /* Sum: '<S750>/Sum' incorporates:
22048 * Constant: '<S750>/Constant1'
22049 */
22050 L4_MABX_B.Sum_e = L4_MABX_B.UnitDelay_k + L4_MABX_P.Constant1_Value_c0;
22051 L4_MABX_B.Switch_n = L4_MABX_B.Sum_e;
22052 } else {
22053 L4_MABX_B.Switch_n = L4_MABX_P.Constant0_Value_l;
22054 }
22055
22056 /* End of Switch: '<S750>/Switch' */
22057
22058 /* RelationalOperator: '<S754>/Compare' incorporates:
22059 * Constant: '<S754>/Constant'
22060 */
22061 L4_MABX_B.Compare_mj = (L4_MABX_B.Switch_n > L4_MABX_P.Constant_Value_po);
22062
22063 /* Gain: '<S750>/Gain' incorporates:
22064 * Constant: '<S418>/Constant1'
22065 */
22066 L4_MABX_B.Gain_g = L4_MABX_P.Gain_Gain_ge * L4_MABX_P.Constant1_Value_ef;
22067
22068 /* RelationalOperator: '<S750>/LessThanOrEqual' */
22069 L4_MABX_B.LessThanOrEqual_h = (L4_MABX_B.Switch_n <= L4_MABX_B.Gain_g);
22070
22071 /* Logic: '<S750>/AND' */
22072 L4_MABX_B.AND_l = (L4_MABX_B.Compare_mj && L4_MABX_B.LessThanOrEqual_h);
22073
22074 /* Logic: '<S744>/NOT' */
22075 L4_MABX_B.NOT_a = !L4_MABX_B.AND_l;
22076
22077 /* Logic: '<S744>/AND' */
22078 L4_MABX_B.AND_bd = (L4_MABX_B.FixPtRelationalOperator_d && L4_MABX_B.NOT_a);
22079
22080 /* UnitDelay: '<S751>/Unit Delay' */
22081 L4_MABX_B.UnitDelay_g = L4_MABX_DW.UnitDelay_DSTATE_n;
22082
22083 /* UnitDelay: '<S751>/Unit Delay1' */
22084 L4_MABX_B.UnitDelay1_p = L4_MABX_DW.UnitDelay1_DSTATE_i;
22085
22086 /* Logic: '<S751>/OR1' */
22087 L4_MABX_B.OR1_h = (L4_MABX_B.AND_bd || L4_MABX_B.UnitDelay1_p);
22088
22089 /* Switch: '<S751>/Switch' incorporates:
22090 * Constant: '<S751>/Constant0'
22091 */
22092 if (L4_MABX_B.OR1_h) {
22093 /* Sum: '<S751>/Sum' incorporates:
22094 * Constant: '<S751>/Constant1'
22095 */
22096 L4_MABX_B.Sum_b = L4_MABX_B.UnitDelay_g + L4_MABX_P.Constant1_Value_l0;
22097 L4_MABX_B.Switch_m = L4_MABX_B.Sum_b;
22098 } else {
22099 L4_MABX_B.Switch_m = L4_MABX_P.Constant0_Value_j;
22100 }
22101
22102 /* End of Switch: '<S751>/Switch' */
22103
22104 /* RelationalOperator: '<S755>/Compare' incorporates:
22105 * Constant: '<S755>/Constant'
22106 */
22107 L4_MABX_B.Compare_ne = (L4_MABX_B.Switch_m > L4_MABX_P.Constant_Value_c4);
22108
22109 /* Gain: '<S751>/Gain' incorporates:
22110 * Constant: '<S418>/Constant'
22111 */
22112 L4_MABX_B.Gain_kn = L4_MABX_P.Gain_Gain_fi * L4_MABX_P.Constant_Value_fo;
22113
22114 /* RelationalOperator: '<S751>/LessThanOrEqual' */
22115 L4_MABX_B.LessThanOrEqual_i = (L4_MABX_B.Switch_m <= L4_MABX_B.Gain_kn);
22116
22117 /* Logic: '<S751>/AND' */
22118 L4_MABX_B.AND_g = (L4_MABX_B.Compare_ne && L4_MABX_B.LessThanOrEqual_i);
22119
22120 /* Logic: '<S744>/AND2' */
22121 LogEventPB = (L4_MABX_B.AND_g && L4_MABX_B.NOT_a);
22122
22123 /* Assertion: '<S785>/Assertion' */
22124 utAssert(L4_MABX_B.conjunction_l);
22125
22126 /* Assertion: '<S793>/Assertion' */
22127 utAssert(L4_MABX_B.conjunction);
22128
22129 /* Assertion: '<S801>/Assertion' */
22130 utAssert(L4_MABX_B.conjunction_p);
22131
22132 /* Assertion: '<S809>/Assertion' */
22133 utAssert(L4_MABX_B.conjunction_c);
22134
22135 /* Assertion: '<S817>/Assertion' */
22136 utAssert(L4_MABX_B.conjunction_n);
22137
22138 /* RelationalOperator: '<S784>/Relational Operator9' incorporates:
22139 * Constant: '<S765>/PWMSynchFaultLimMin'
22140 */
22141 L4_MABX_B.F_Fault_Soft_d = (L4_MABX_B.If_Then_Else_d.Switch !=
22142 L4_MABX_P.PWMSynchFaultLimMin_Value);
22143
22144 /* Gain: '<S418>/ShifterControlFreq' */
22145 L4_MABX_B.ShiftControlFreq = L4_MABX_P.ShifterControlFreq_Gain *
22146 L4_MABX_B.SFunction1_o1_h;
22147
22148 /* S-Function (rti_commonblock): '<S732>/S-Function1' */
22149 /* This comment workarounds a code generation problem */
22150 {
22151 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
22152 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
22153 ADC_TP4_CH2,
22154 (dsfloat *)&L4_MABX_B.SFunction1_m);
22155 }
22156
22157 /* Gain: '<S418>/ShifterControlDC2' */
22158 L4_MABX_B.ShifterControlDC2 = L4_MABX_P.ShifterControlDC2_Gain *
22159 L4_MABX_B.SFunction1_m;
22160
22161 /* S-Function (rti_commonblock): '<S733>/S-Function1' */
22162 /* This comment workarounds a code generation problem */
22163 {
22164 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
22165 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
22166 ADC_TP4_CH1,
22167 (dsfloat *)&L4_MABX_B.SFunction1_h);
22168 }
22169
22170 /* Gain: '<S418>/ShifterControlDC1' */
22171 L4_MABX_B.ShifterControlDC1 = L4_MABX_P.ShifterControlDC1_Gain *
22172 L4_MABX_B.SFunction1_h;
22173
22174 /* S-Function (rti_commonblock): '<S8>/S-Function1' */
22175 /* This comment workarounds a code generation problem */
22176
22177 /* S-Function (rti_commonblock): '<S9>/S-Function1' */
22178 /* This comment workarounds a code generation problem */
22179
22180 /* UnitDelay: '<S10>/Unit_Delay' */
22181 L4_MABX_B.Unit_Delay_jj = L4_MABX_DW.Unit_Delay_DSTATE_do;
22182
22183 /* Outputs for Enabled SubSystem: '<S10>/EnabledSubsystem' incorporates:
22184 * EnablePort: '<S1093>/Enable'
22185 */
22186 if (L4_MABX_B.Unit_Delay_jj) {
22187 /* Constant: '<S1093>/Constant' */
22188 memcpy(&GLB_SWVERSION_CPV_[0], &L4_MABX_P.GLB_SWVERSION_CPV[0], 100U *
22189 sizeof(uint8_T));
22190 }
22191
22192 /* End of Outputs for SubSystem: '<S10>/EnabledSubsystem' */
22193 /* user code (Output function Trailer for TID0) */
22194
22195 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
22196 /* EventChannel: 0 */
22197 if (tid == 0) {
22198 DSXCP_service(0);
22199 }
22200
22201 /* If subsystem generates rate grouping Output functions,
22202 * when tid is used in Output function for one rate,
22203 * all Output functions include tid as a local variable.
22204 * As result, some Output functions may have unused tid.
22205 */
22206 UNUSED_PARAMETER(tid);
22207}
22208
22209/* Model update function for TID0 */
22210void L4_MABX_update0(void) /* Sample time: [0.01s, 0.0s] */
22211{
22212 int32_T i;
22213
22214 /* Update for UnitDelay: '<S759>/Unit Delay' */
22215 L4_MABX_DW.UnitDelay_DSTATE = L4_MABX_B.Switch_o;
22216
22217 /* Update for UnitDelay: '<S757>/Delay Input1' */
22218 L4_MABX_DW.DelayInput1_DSTATE_p = L4_MABX_B.Compare;
22219
22220 /* Update for UnitDelay: '<S758>/Unit Delay' */
22221 L4_MABX_DW.UnitDelay_DSTATE_e = L4_MABX_B.Switch;
22222
22223 /* Update for UnitDelay: '<S745>/Unit Delay' */
22224 L4_MABX_DW.UnitDelay_DSTATE_be = L4_MABX_B.AND_a;
22225
22226 /* Update for UnitDelay: '<S756>/Delay Input1' */
22227 L4_MABX_DW.DelayInput1_DSTATE_m = L4_MABX_B.Compare_o;
22228
22229 /* Update for UnitDelay: '<S758>/Unit Delay1' */
22230 L4_MABX_DW.UnitDelay1_DSTATE_g = L4_MABX_B.AND;
22231
22232 /* Update for UnitDelay: '<S759>/Unit Delay1' */
22233 L4_MABX_DW.UnitDelay1_DSTATE_gp = L4_MABX_B.AND_a;
22234
22235 /* Update for UnitDelay: '<S798>/FixPt Unit Delay2' incorporates:
22236 * Constant: '<S798>/FixPt Constant'
22237 */
22238 L4_MABX_DW.FixPtUnitDelay2_DSTATE = L4_MABX_P.FixPtConstant_Value_l;
22239
22240 /* Update for UnitDelay: '<S798>/FixPt Unit Delay1' */
22241 L4_MABX_DW.FixPtUnitDelay1_DSTATE = L4_MABX_B.If_Then_Else_pu.Switch;
22242
22243 /* Update for UnitDelay: '<S790>/FixPt Unit Delay2' incorporates:
22244 * Constant: '<S790>/FixPt Constant'
22245 */
22246 L4_MABX_DW.FixPtUnitDelay2_DSTATE_m = L4_MABX_P.FixPtConstant_Value_c2;
22247
22248 /* Update for UnitDelay: '<S790>/FixPt Unit Delay1' */
22249 L4_MABX_DW.FixPtUnitDelay1_DSTATE_c = L4_MABX_B.If_Then_Else_c.Switch;
22250
22251 /* Update for UnitDelay: '<S814>/FixPt Unit Delay2' incorporates:
22252 * Constant: '<S814>/FixPt Constant'
22253 */
22254 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o = L4_MABX_P.FixPtConstant_Value_po;
22255
22256 /* Update for UnitDelay: '<S814>/FixPt Unit Delay1' */
22257 L4_MABX_DW.FixPtUnitDelay1_DSTATE_p = L4_MABX_B.If_Then_Else_n.Switch;
22258
22259 /* Update for UnitDelay: '<S806>/FixPt Unit Delay2' incorporates:
22260 * Constant: '<S806>/FixPt Constant'
22261 */
22262 L4_MABX_DW.FixPtUnitDelay2_DSTATE_og = L4_MABX_P.FixPtConstant_Value_e4;
22263
22264 /* Update for UnitDelay: '<S806>/FixPt Unit Delay1' */
22265 L4_MABX_DW.FixPtUnitDelay1_DSTATE_j = L4_MABX_B.If_Then_Else_h.Switch;
22266
22267 /* Update for UnitDelay: '<S768>/Unit_Delay' incorporates:
22268 * Constant: '<S768>/Constant'
22269 */
22270 L4_MABX_DW.Unit_Delay_DSTATE_k = L4_MABX_P.Constant_Value_la;
22271
22272 /* Update for UnitDelay: '<S835>/Unit_Delay1' incorporates:
22273 * Constant: '<S835>/Constant'
22274 */
22275 L4_MABX_DW.Unit_Delay1_DSTATE = L4_MABX_P.Constant_Value_ari;
22276
22277 /* Update for UnitDelay: '<S835>/Unit_Delay2' */
22278 L4_MABX_DW.Unit_Delay2_DSTATE = L4_MABX_B.If_Then_Else_b.Switch;
22279
22280 /* Update for UnitDelay: '<S768>/Unit_Delay1' incorporates:
22281 * Constant: '<S768>/Constant1'
22282 */
22283 L4_MABX_DW.Unit_Delay1_DSTATE_o = L4_MABX_P.Constant1_Value_ng;
22284
22285 /* Update for UnitDelay: '<S836>/Unit_Delay1' incorporates:
22286 * Constant: '<S836>/Constant'
22287 */
22288 L4_MABX_DW.Unit_Delay1_DSTATE_a = L4_MABX_P.Constant_Value_oz;
22289
22290 /* Update for UnitDelay: '<S836>/Unit_Delay2' */
22291 L4_MABX_DW.Unit_Delay2_DSTATE_b = L4_MABX_B.If_Then_Else_nh.Switch;
22292
22293 /* Update for UnitDelay: '<S834>/FixPt Unit Delay2' incorporates:
22294 * Constant: '<S834>/FixPt Constant'
22295 */
22296 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o0 = L4_MABX_P.FixPtConstant_Value_gs;
22297
22298 /* Update for UnitDelay: '<S834>/FixPt Unit Delay1' */
22299 L4_MABX_DW.FixPtUnitDelay1_DSTATE_k = L4_MABX_B.If_Then_Else3_dy.Switch;
22300
22301 /* Update for UnitDelay: '<S833>/FixPt Unit Delay2' incorporates:
22302 * Constant: '<S833>/FixPt Constant'
22303 */
22304 L4_MABX_DW.FixPtUnitDelay2_DSTATE_d = L4_MABX_P.FixPtConstant_Value_pe;
22305
22306 /* Update for UnitDelay: '<S833>/FixPt Unit Delay1' */
22307 L4_MABX_DW.FixPtUnitDelay1_DSTATE_h = L4_MABX_B.If_Then_Else1_j0.Switch;
22308
22309 /* Update for UnitDelay: '<S822>/FixPt Unit Delay2' incorporates:
22310 * Constant: '<S822>/FixPt Constant'
22311 */
22312 L4_MABX_DW.FixPtUnitDelay2_DSTATE_c = L4_MABX_P.FixPtConstant_Value_n5;
22313
22314 /* Update for UnitDelay: '<S822>/FixPt Unit Delay1' */
22315 L4_MABX_DW.FixPtUnitDelay1_DSTATE_i = L4_MABX_B.If_Then_Else_d.Switch;
22316
22317 /* Update for Enabled SubSystem: '<S746>/Slew_at_event' incorporates:
22318 * EnablePort: '<S769>/Enable'
22319 */
22320 if (L4_MABX_DW.Slew_at_event_MODE) {
22321 /* Update for UnitDelay: '<S840>/Unit_Delay' */
22322 L4_MABX_DW.Unit_Delay_DSTATE_bo = L4_MABX_B.LogicalOperator6_i;
22323
22324 /* Update for UnitDelay: '<S841>/Unit_Delay' incorporates:
22325 * Constant: '<S841>/Constant'
22326 */
22327 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Constant_Value_os;
22328
22329 /* Update for UnitDelay: '<S844>/FixPt Unit Delay2' incorporates:
22330 * Constant: '<S844>/FixPt Constant'
22331 */
22332 L4_MABX_DW.FixPtUnitDelay2_DSTATE_mt = L4_MABX_P.FixPtConstant_Value_dj;
22333
22334 /* Update for UnitDelay: '<S844>/FixPt Unit Delay1' */
22335 L4_MABX_DW.FixPtUnitDelay1_DSTATE_m = L4_MABX_B.If_Then_Else_gq.Switch;
22336
22337 /* Update for UnitDelay: '<S839>/Unit_Delay' */
22338 L4_MABX_DW.Unit_Delay_DSTATE_em = L4_MABX_B.LogicalOperator_p;
22339 }
22340
22341 /* End of Update for SubSystem: '<S746>/Slew_at_event' */
22342
22343 /* Update for Enabled SubSystem: '<S438>/CAN_RX_EC1_00' incorporates:
22344 * EnablePort: '<S522>/Enable'
22345 */
22346 if (L4_MABX_B.LogicalOperator_h) {
22347 /* Update for UnitDelay: '<S522>/Unit Delay' */
22348 for (i = 0; i < 39; i++) {
22349 L4_MABX_DW.UnitDelay_DSTATE_g[i] = L4_MABX_B.Data_a[i];
22350 }
22351
22352 /* End of Update for UnitDelay: '<S522>/Unit Delay' */
22353
22354 /* Update for Enabled SubSystem: '<S522>/Decode' incorporates:
22355 * EnablePort: '<S525>/Enable'
22356 */
22357 if (L4_MABX_B.RX_status_m) {
22358 /* Update for UnitDelay: '<S525>/Unit_Delay' */
22359 L4_MABX_DW.Unit_Delay_DSTATE_o = L4_MABX_B.timeStamp_p;
22360 }
22361
22362 /* End of Update for SubSystem: '<S522>/Decode' */
22363 }
22364
22365 /* End of Update for SubSystem: '<S438>/CAN_RX_EC1_00' */
22366
22367 /* Update for UnitDelay: '<S651>/Unit_Delay3' */
22368 L4_MABX_DW.Unit_Delay3_DSTATE = L4_MABX_B.LogicalOperator2_i;
22369
22370 /* Update for Enabled SubSystem: '<S461>/CAN_RX_VI_00' incorporates:
22371 * EnablePort: '<S650>/Enable'
22372 */
22373 if (L4_MABX_B.LogicalOperator_m) {
22374 /* Update for UnitDelay: '<S650>/Unit Delay' */
22375 for (i = 0; i < 17; i++) {
22376 L4_MABX_DW.UnitDelay_DSTATE_o[i] = L4_MABX_B.Data[i];
22377 }
22378
22379 /* End of Update for UnitDelay: '<S650>/Unit Delay' */
22380
22381 /* Update for Enabled SubSystem: '<S650>/Decode' incorporates:
22382 * EnablePort: '<S653>/Enable'
22383 */
22384 if (L4_MABX_B.RX_status_lh) {
22385 /* Update for UnitDelay: '<S653>/Unit_Delay' */
22386 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_B.timeStamp;
22387 }
22388
22389 /* End of Update for SubSystem: '<S650>/Decode' */
22390 }
22391
22392 /* End of Update for SubSystem: '<S461>/CAN_RX_VI_00' */
22393
22394 /* Update for UnitDelay: '<S651>/Unit_Delay' incorporates:
22395 * Constant: '<S651>/Constant'
22396 */
22397 L4_MABX_DW.Unit_Delay_DSTATE_ca = L4_MABX_P.Constant_Value_il3;
22398
22399 /* Update for UnitDelay: '<S657>/Unit_Delay' */
22400 L4_MABX_DW.Unit_Delay_DSTATE_ed = L4_MABX_B.LogicalOperator1_p;
22401
22402 /* Update for UnitDelay: '<S3>/Unit_Delay' */
22403 L4_MABX_DW.Unit_Delay_80_DSTATE = EStop;
22404 L4_MABX_DW.Unit_Delay_81_DSTATE = EnableSw;
22405 L4_MABX_DW.Unit_Delay_48_DSTATE = EngageReq;
22406 L4_MABX_DW.Unit_Delay_83_DSTATE = LogEventPB;
22407 L4_MABX_DW.Unit_Delay_45_DSTATE = AutonomousEnabled;
22408 L4_MABX_DW.Unit_Delay_47_DSTATE = MABX_Mode;
22409 L4_MABX_DW.Unit_Delay_84_DSTATE = BrakeSW;
22410
22411 /* Update for UnitDelay: '<S407>/Delay Input1' */
22412 L4_MABX_DW.DelayInput1_DSTATE_n = L4_MABX_B.Compare_c5;
22413
22414 /* Update for UnitDelay: '<S405>/Unit Delay' */
22415 L4_MABX_DW.UnitDelay_DSTATE_k = L4_MABX_B.Count;
22416
22417 /* Update for Atomic SubSystem: '<S65>/Task_10ms' */
22418 /* Update for UnitDelay: '<S102>/Delay Input1' */
22419 L4_MABX_DW.DelayInput1_DSTATE_j = L4_MABX_B.Compare_j;
22420
22421 /* Update for UnitDelay: '<S76>/Unit_Delay' */
22422 L4_MABX_DW.Unit_Delay_DSTATE_fv = AutonomousEnabled;
22423
22424 /* Update for UnitDelay: '<S97>/Unit Delay1' */
22425 L4_MABX_DW.UnitDelay1_DSTATE_m = L4_MABX_B.Switch_a;
22426
22427 /* Update for UnitDelay: '<S98>/Delay Input1' */
22428 L4_MABX_DW.DelayInput1_DSTATE_d = L4_MABX_B.Compare_jp;
22429
22430 /* Update for UnitDelay: '<S97>/Unit Delay' */
22431 L4_MABX_DW.UnitDelay_DSTATE_b1 = L4_MABX_B.AND_f;
22432
22433 /* Update for Enabled SubSystem: '<S79>/Throttle_controller_gov' incorporates:
22434 * EnablePort: '<S214>/Enable'
22435 */
22436 if (L4_MABX_DW.Throttle_controller_gov_MODE) {
22437 /* Update for UnitDelay: '<S222>/Unit_Delay1' incorporates:
22438 * Constant: '<S222>/Constant3'
22439 */
22440 L4_MABX_DW.Unit_Delay1_DSTATE_p1 = L4_MABX_P.Constant3_Value_lp;
22441
22442 /* Update for UnitDelay: '<S222>/Unit_Delay' */
22443 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_B.RelationalOperator_fl;
22444
22445 /* Update for UnitDelay: '<S249>/Unit_Delay' incorporates:
22446 * Constant: '<S249>/Constant'
22447 */
22448 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Constant_Value_ck;
22449
22450 /* Update for UnitDelay: '<S269>/Unit_Delay1' incorporates:
22451 * Constant: '<S269>/Constant'
22452 */
22453 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Constant_Value_ot;
22454
22455 /* Update for UnitDelay: '<S270>/Unit_Delay' incorporates:
22456 * Constant: '<S270>/Constant'
22457 */
22458 L4_MABX_DW.Unit_Delay_DSTATE_fic = L4_MABX_P.Constant_Value_h0;
22459
22460 /* Update for UnitDelay: '<S274>/FixPt Unit Delay2' incorporates:
22461 * Constant: '<S274>/FixPt Constant'
22462 */
22463 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq = L4_MABX_P.FixPtConstant_Value_jk;
22464
22465 /* Update for UnitDelay: '<S274>/FixPt Unit Delay1' */
22466 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a = L4_MABX_B.If_Then_Else_cp.Switch;
22467
22468 /* Update for UnitDelay: '<S269>/Unit_Delay2' */
22469 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_B.If_Then_Else_k.Switch;
22470
22471 /* Update for Enabled SubSystem: '<S246>/Calculate_D_term' */
22472 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term_h,
22473 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
22474
22475 /* End of Update for SubSystem: '<S246>/Calculate_D_term' */
22476
22477 /* Update for UnitDelay: '<S224>/Unit_Delay' */
22478 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_B.Add_ds;
22479
22480 /* Update for Enabled SubSystem: '<S246>/Calculate_I_term' */
22481 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term_n,
22482 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
22483
22484 /* End of Update for SubSystem: '<S246>/Calculate_I_term' */
22485 }
22486
22487 /* End of Update for SubSystem: '<S79>/Throttle_controller_gov' */
22488
22489 /* Update for Enabled SubSystem: '<S107>/Determine_shift_interlock_brake_pressure_target' incorporates:
22490 * EnablePort: '<S186>/Enable'
22491 */
22492 if (L4_MABX_DW.Determine_shift_interlock_brake) {
22493 /* Update for UnitDelay: '<S186>/Unit_Delay' */
22494 L4_MABX_DW.Unit_Delay_DSTATE_ob = L4_MABX_B.If_Then_Else_il.Switch;
22495
22496 /* Update for UnitDelay: '<S196>/Unit_Delay' incorporates:
22497 * Constant: '<S196>/Constant'
22498 */
22499 L4_MABX_DW.Unit_Delay_DSTATE_a = L4_MABX_P.Constant_Value_ii;
22500
22501 /* Update for UnitDelay: '<S200>/FixPt Unit Delay2' incorporates:
22502 * Constant: '<S200>/FixPt Constant'
22503 */
22504 L4_MABX_DW.FixPtUnitDelay2_DSTATE_l = L4_MABX_P.FixPtConstant_Value_kr;
22505
22506 /* Update for UnitDelay: '<S200>/FixPt Unit Delay1' */
22507 L4_MABX_DW.FixPtUnitDelay1_DSTATE_d = L4_MABX_B.If_Then_Else_ep.Switch;
22508
22509 /* Update for UnitDelay: '<S197>/Unit_Delay' */
22510 L4_MABX_DW.Unit_Delay_DSTATE_om = L4_MABX_B.DigitalClock_e;
22511 }
22512
22513 /* End of Update for SubSystem: '<S107>/Determine_shift_interlock_brake_pressure_target' */
22514
22515 /* Update for Enabled SubSystem: '<S107>/Determine_brake_hold_pressure_target' incorporates:
22516 * EnablePort: '<S185>/Enable'
22517 */
22518 if (L4_MABX_DW.Determine_brake_hold_pressure_t) {
22519 /* Update for UnitDelay: '<S185>/Unit_Delay' */
22520 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_B.If_Then_Else_gj.Switch;
22521
22522 /* Update for UnitDelay: '<S189>/Unit_Delay' incorporates:
22523 * Constant: '<S189>/Constant'
22524 */
22525 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Constant_Value_m3;
22526
22527 /* Update for UnitDelay: '<S193>/FixPt Unit Delay2' incorporates:
22528 * Constant: '<S193>/FixPt Constant'
22529 */
22530 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je = L4_MABX_P.FixPtConstant_Value_a;
22531
22532 /* Update for UnitDelay: '<S193>/FixPt Unit Delay1' */
22533 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b = L4_MABX_B.If_Then_Else_nz.Switch;
22534
22535 /* Update for UnitDelay: '<S190>/Unit_Delay' */
22536 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_B.DigitalClock_c;
22537 }
22538
22539 /* End of Update for SubSystem: '<S107>/Determine_brake_hold_pressure_target' */
22540
22541 /* Update for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' incorporates:
22542 * EnablePort: '<S104>/Enable'
22543 */
22544 if (L4_MABX_DW.Bendix_2C2_brake_application_pr) {
22545 /* Update for UnitDelay: '<S113>/Unit_Delay' */
22546 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_B.DigitalClock_j;
22547
22548 /* Update for UnitDelay: '<S117>/Unit_Delay' incorporates:
22549 * Constant: '<S117>/Constant'
22550 */
22551 L4_MABX_DW.Unit_Delay_DSTATE_omj = L4_MABX_P.Constant_Value_lo;
22552
22553 /* Update for UnitDelay: '<S137>/Unit_Delay1' incorporates:
22554 * Constant: '<S137>/Constant'
22555 */
22556 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Constant_Value_olo;
22557
22558 /* Update for UnitDelay: '<S138>/Unit_Delay' incorporates:
22559 * Constant: '<S138>/Constant'
22560 */
22561 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Constant_Value_hi;
22562
22563 /* Update for UnitDelay: '<S142>/FixPt Unit Delay2' incorporates:
22564 * Constant: '<S142>/FixPt Constant'
22565 */
22566 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm = L4_MABX_P.FixPtConstant_Value_f;
22567
22568 /* Update for UnitDelay: '<S142>/FixPt Unit Delay1' */
22569 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 = L4_MABX_B.If_Then_Else_bg.Switch;
22570
22571 /* Update for UnitDelay: '<S137>/Unit_Delay2' */
22572 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_B.If_Then_Else_ly.Switch;
22573
22574 /* Update for Enabled SubSystem: '<S114>/Calculate_D_term' */
22575 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term,
22576 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
22577
22578 /* End of Update for SubSystem: '<S114>/Calculate_D_term' */
22579
22580 /* Update for UnitDelay: '<S112>/Unit_Delay' */
22581 L4_MABX_DW.Unit_Delay_DSTATE_i2 = L4_MABX_B.Add_e;
22582
22583 /* Update for Enabled SubSystem: '<S114>/Calculate_I_term' */
22584 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term,
22585 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
22586
22587 /* End of Update for SubSystem: '<S114>/Calculate_I_term' */
22588 }
22589
22590 /* End of Update for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
22591
22592 /* Update for UnitDelay: '<S391>/Unit_Delay' */
22593 L4_MABX_DW.Unit_Delay_DSTATE_cx = L4_MABX_B.LogicalOperator2_f;
22594
22595 /* Update for UnitDelay: '<S392>/Unit_Delay' incorporates:
22596 * Constant: '<S392>/Constant'
22597 */
22598 L4_MABX_DW.Unit_Delay_DSTATE_d0 = L4_MABX_P.Constant_Value_c1;
22599
22600 /* Update for UnitDelay: '<S349>/Unit_Delay' */
22601 L4_MABX_DW.Unit_Delay_DSTATE_e = L4_MABX_B.If_Then_Else_m4.Switch;
22602
22603 /* Update for UnitDelay: '<S396>/FixPt Unit Delay2' incorporates:
22604 * Constant: '<S396>/FixPt Constant'
22605 */
22606 L4_MABX_DW.FixPtUnitDelay2_DSTATE_a = L4_MABX_P.FixPtConstant_Value_jx;
22607
22608 /* Update for UnitDelay: '<S396>/FixPt Unit Delay1' */
22609 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hj = L4_MABX_B.If_Then_Else_m4.Switch;
22610
22611 /* Update for UnitDelay: '<S393>/Unit_Delay' */
22612 L4_MABX_DW.Unit_Delay_DSTATE_m = L4_MABX_B.DigitalClock;
22613
22614 /* Update for UnitDelay: '<S380>/Unit_Delay' */
22615 L4_MABX_DW.Unit_Delay_DSTATE_iy = L4_MABX_B.LogicalOperator1_g;
22616
22617 /* Update for UnitDelay: '<S381>/Unit_Delay' incorporates:
22618 * Constant: '<S381>/Constant'
22619 */
22620 L4_MABX_DW.Unit_Delay_DSTATE_mv = L4_MABX_P.Constant_Value_am4;
22621
22622 /* Update for UnitDelay: '<S347>/Unit_Delay' */
22623 L4_MABX_DW.Unit_Delay_DSTATE_g = L4_MABX_B.If_Then_Else_bf.Switch;
22624
22625 /* Update for UnitDelay: '<S385>/FixPt Unit Delay2' incorporates:
22626 * Constant: '<S385>/FixPt Constant'
22627 */
22628 L4_MABX_DW.FixPtUnitDelay2_DSTATE_i = L4_MABX_P.FixPtConstant_Value_dx;
22629
22630 /* Update for UnitDelay: '<S385>/FixPt Unit Delay1' */
22631 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq = L4_MABX_B.If_Then_Else_bf.Switch;
22632
22633 /* Update for UnitDelay: '<S382>/Unit_Delay' */
22634 L4_MABX_DW.Unit_Delay_DSTATE_b = L4_MABX_B.DigitalClock_b;
22635
22636 /* Update for UnitDelay: '<S344>/Delay Input1' */
22637 L4_MABX_DW.DelayInput1_DSTATE[0] = L4_MABX_B.Distance_to_achieve_speed_targe;
22638 L4_MABX_DW.DelayInput1_DSTATE[1] = L4_MABX_B.Vehicle_speed_target_o;
22639
22640 /* Update for UnitDelay: '<S362>/Unit_Delay' */
22641 L4_MABX_DW.Unit_Delay_DSTATE_bw = L4_MABX_B.If_Then_Else_og.Switch;
22642
22643 /* Update for UnitDelay: '<S364>/Unit_Delay' */
22644 L4_MABX_DW.Unit_Delay_DSTATE_ko = L4_MABX_B.LogicalOperator1_ph;
22645
22646 /* Update for UnitDelay: '<S373>/FixPt Unit Delay2' incorporates:
22647 * Constant: '<S373>/FixPt Constant'
22648 */
22649 L4_MABX_DW.FixPtUnitDelay2_DSTATE_f = L4_MABX_P.FixPtConstant_Value_g;
22650
22651 /* Update for UnitDelay: '<S373>/FixPt Unit Delay1' */
22652 L4_MABX_DW.FixPtUnitDelay1_DSTATE_l = L4_MABX_B.Xnew;
22653
22654 /* Update for UnitDelay: '<S371>/Unit_Delay' */
22655 L4_MABX_DW.Unit_Delay_DSTATE_p = L4_MABX_B.DigitalClock_f;
22656
22657 /* Update for UnitDelay: '<S351>/Delay Input1' */
22658 L4_MABX_DW.DelayInput1_DSTATE_f[0] = L4_MABX_B.Distance_to_achieve_speed_targe;
22659 L4_MABX_DW.DelayInput1_DSTATE_f[1] = L4_MABX_B.Vehicle_speed_target_o;
22660
22661 /* Update for UnitDelay: '<S353>/Unit_Delay' incorporates:
22662 * Constant: '<S353>/Constant'
22663 */
22664 L4_MABX_DW.Unit_Delay_DSTATE_l = L4_MABX_P.Constant_Value_pu;
22665
22666 /* Update for UnitDelay: '<S357>/FixPt Unit Delay2' incorporates:
22667 * Constant: '<S357>/FixPt Constant'
22668 */
22669 L4_MABX_DW.FixPtUnitDelay2_DSTATE_cn = L4_MABX_P.FixPtConstant_Value_az;
22670
22671 /* Update for UnitDelay: '<S357>/FixPt Unit Delay1' */
22672 L4_MABX_DW.FixPtUnitDelay1_DSTATE_e = L4_MABX_B.If_Then_Else_pz.Switch;
22673
22674 /* Update for UnitDelay: '<S352>/Unit_Delay' */
22675 L4_MABX_DW.Unit_Delay_1_DSTATE_j =
22676 L4_MABX_B.If_Then_Else_mm.Vehicle_speed_target;
22677 L4_MABX_DW.Unit_Delay_2_DSTATE_e = L4_MABX_B.If_Then_Else_mm.Vehicle_speed;
22678 L4_MABX_DW.Unit_Delay_3_DSTATE_j = L4_MABX_B.If_Then_Else_mm.Distance_m;
22679
22680 /* Update for UnitDelay: '<S350>/Unit_Delay' */
22681 L4_MABX_DW.Unit_Delay_DSTATE_f = L4_MABX_B.DigitalClock_p;
22682
22683 /* Update for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' incorporates:
22684 * EnablePort: '<S105>/Enable'
22685 */
22686 if (L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
22687 /* Update for UnitDelay: '<S148>/Unit_Delay' */
22688 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_B.DigitalClock_n;
22689
22690 /* Update for UnitDelay: '<S155>/Unit_Delay' incorporates:
22691 * Constant: '<S155>/Constant'
22692 */
22693 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Constant_Value_j5;
22694
22695 /* Update for UnitDelay: '<S175>/Unit_Delay1' incorporates:
22696 * Constant: '<S175>/Constant'
22697 */
22698 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Constant_Value_bd;
22699
22700 /* Update for UnitDelay: '<S176>/Unit_Delay' incorporates:
22701 * Constant: '<S176>/Constant'
22702 */
22703 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Constant_Value_m2w;
22704
22705 /* Update for UnitDelay: '<S180>/FixPt Unit Delay2' incorporates:
22706 * Constant: '<S180>/FixPt Constant'
22707 */
22708 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o4 = L4_MABX_P.FixPtConstant_Value_j;
22709
22710 /* Update for UnitDelay: '<S180>/FixPt Unit Delay1' */
22711 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 = L4_MABX_B.If_Then_Else_iy.Switch;
22712
22713 /* Update for UnitDelay: '<S175>/Unit_Delay2' */
22714 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_B.If_Then_Else_bc.Switch;
22715
22716 /* Update for Enabled SubSystem: '<S152>/Calculate_D_term' */
22717 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term_p,
22718 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
22719
22720 /* End of Update for SubSystem: '<S152>/Calculate_D_term' */
22721
22722 /* Update for UnitDelay: '<S147>/Unit_Delay' */
22723 L4_MABX_DW.Unit_Delay_DSTATE_hs = L4_MABX_B.Add_mh;
22724
22725 /* Update for Enabled SubSystem: '<S152>/Calculate_I_term' */
22726 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term_e,
22727 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
22728
22729 /* End of Update for SubSystem: '<S152>/Calculate_I_term' */
22730 }
22731
22732 /* End of Update for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
22733
22734 /* Update for UnitDelay: '<S109>/Unit_Delay' incorporates:
22735 * Constant: '<S109>/Constant7'
22736 */
22737 L4_MABX_DW.Unit_Delay_DSTATE_eu4 = L4_MABX_P.Constant7_Value_j;
22738
22739 /* Update for UnitDelay: '<S205>/Unit_Delay1' incorporates:
22740 * Constant: '<S205>/Constant'
22741 */
22742 L4_MABX_DW.Unit_Delay1_DSTATE_di = L4_MABX_P.Constant_Value_jf;
22743
22744 /* Update for UnitDelay: '<S205>/Unit_Delay2' */
22745 L4_MABX_DW.Unit_Delay2_DSTATE_e = L4_MABX_B.If_Then_Else_g.Switch;
22746
22747 /* Update for UnitDelay: '<S204>/UD' */
22748 L4_MABX_DW.UD_DSTATE = L4_MABX_B.TSamp;
22749
22750 /* Update for UnitDelay: '<S329>/Unit_Delay1' incorporates:
22751 * Constant: '<S329>/Constant'
22752 */
22753 L4_MABX_DW.Unit_Delay1_DSTATE_db = L4_MABX_P.Constant_Value_hx;
22754
22755 /* Update for UnitDelay: '<S329>/Unit_Delay2' */
22756 L4_MABX_DW.Unit_Delay2_DSTATE_d = L4_MABX_B.If_Then_Else_b3.Switch;
22757
22758 /* Update for UnitDelay: '<S328>/Delay Input1' */
22759 L4_MABX_DW.DelayInput1_DSTATE_f0 = L4_MABX_B.JumpNearEdge;
22760
22761 /* Update for UnitDelay: '<S330>/Unit_Delay1' incorporates:
22762 * Constant: '<S330>/Constant'
22763 */
22764 L4_MABX_DW.Unit_Delay1_DSTATE_as = L4_MABX_P.Constant_Value_bh;
22765
22766 /* Update for UnitDelay: '<S330>/Unit_Delay2' */
22767 L4_MABX_DW.Unit_Delay2_DSTATE_i = L4_MABX_B.If_Then_Else_mk.Switch;
22768
22769 /* Update for UnitDelay: '<S331>/Unit_Delay1' incorporates:
22770 * Constant: '<S331>/Constant'
22771 */
22772 L4_MABX_DW.Unit_Delay1_DSTATE_p = L4_MABX_P.Constant_Value_hxo;
22773
22774 /* Update for UnitDelay: '<S331>/Unit_Delay2' */
22775 L4_MABX_DW.Unit_Delay2_DSTATE_p = L4_MABX_B.If_Then_Else_lh.Switch;
22776
22777 /* Update for Enabled SubSystem: '<S285>/Slew_at_event' incorporates:
22778 * EnablePort: '<S336>/Enable'
22779 */
22780 if (L4_MABX_DW.Slew_at_event_MODE_d) {
22781 /* Update for UnitDelay: '<S338>/Unit_Delay' */
22782 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_B.DataTypeConversion_l1;
22783
22784 /* Update for UnitDelay: '<S339>/Unit_Delay' incorporates:
22785 * Constant: '<S339>/Constant'
22786 */
22787 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Constant_Value_hg;
22788
22789 /* Update for UnitDelay: '<S342>/FixPt Unit Delay2' incorporates:
22790 * Constant: '<S342>/FixPt Constant'
22791 */
22792 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j = L4_MABX_P.FixPtConstant_Value_n;
22793
22794 /* Update for UnitDelay: '<S342>/FixPt Unit Delay1' */
22795 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o = L4_MABX_B.If_Then_Else_n3.Switch;
22796
22797 /* Update for UnitDelay: '<S337>/Unit_Delay' */
22798 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_B.LogicalOperator_dm;
22799 }
22800
22801 /* End of Update for SubSystem: '<S285>/Slew_at_event' */
22802
22803 /* Update for UnitDelay: '<S287>/Unit Delay' */
22804 L4_MABX_DW.UnitDelay_DSTATE_d = L4_MABX_B.Switch1_fi;
22805
22806 /* Update for UnitDelay: '<S297>/Unit Delay' */
22807 L4_MABX_DW.UnitDelay_DSTATE_m = L4_MABX_B.Add1_m;
22808
22809 /* Update for UnitDelay: '<S298>/Unit Delay' */
22810 L4_MABX_DW.UnitDelay_DSTATE_m0 = L4_MABX_B.Switch_k;
22811
22812 /* Update for UnitDelay: '<S298>/Unit Delay1' */
22813 L4_MABX_DW.UnitDelay1_DSTATE_k = L4_MABX_B.Divide1_b;
22814
22815 /* Update for UnitDelay: '<S292>/Unit Delay' */
22816 L4_MABX_DW.UnitDelay_DSTATE_m1 = L4_MABX_B.Switch1_pb;
22817
22818 /* Update for UnitDelay: '<S310>/Delay Input2' */
22819 L4_MABX_DW.DelayInput2_DSTATE = L4_MABX_B.DifferenceInputs2;
22820
22821 /* Update for DiscreteIntegrator: '<S309>/Integrator' */
22822 L4_MABX_DW.Integrator_DSTATE += L4_MABX_P.Integrator_gainval *
22823 L4_MABX_B.IntegralGain;
22824 L4_MABX_DW.Integrator_PrevResetState = (int8_T)AutonomousEnabled;
22825
22826 /* Update for DiscreteIntegrator: '<S309>/Filter' */
22827 L4_MABX_DW.Filter_DSTATE += L4_MABX_P.Filter_gainval *
22828 L4_MABX_B.FilterCoefficient;
22829 L4_MABX_DW.Filter_PrevResetState = (int8_T)AutonomousEnabled;
22830
22831 /* Update for UnitDelay: '<S313>/Delay Input' */
22832 L4_MABX_DW.DelayInput_DSTATE = L4_MABX_B.Saturate;
22833
22834 /* Update for UnitDelay: '<S313>/Delay Output' */
22835 L4_MABX_DW.DelayOutput_DSTATE = L4_MABX_B.Downcast;
22836
22837 /* Update for UnitDelay: '<S311>/Delay Input2' */
22838 L4_MABX_DW.DelayInput2_DSTATE_a = L4_MABX_B.DifferenceInputs2_a;
22839
22840 /* Update for DiscreteIntegrator: '<S303>/Discrete-Time Integrator' */
22841 L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI = 0U;
22842 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE +=
22843 L4_MABX_P.DiscreteTimeIntegrator_gainval * L4_MABX_B.Gain_o;
22844 L4_MABX_DW.DiscreteTimeIntegrator_PrevRese = (int8_T)AutonomousEnabled;
22845
22846 /* Update for UnitDelay: '<S323>/Delay Input2' */
22847 L4_MABX_DW.DelayInput2_DSTATE_l = L4_MABX_B.DifferenceInputs2_m;
22848
22849 /* Update for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' incorporates:
22850 * Constant: '<S80>/ResetIntegrator'
22851 */
22852 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e +=
22853 L4_MABX_P.DiscreteTimeIntegrator_gainva_l * L4_MABX_B.Switch1_p;
22854 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e >=
22855 L4_MABX_P.DiscreteTimeIntegrator_UpperSat) {
22856 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
22857 L4_MABX_P.DiscreteTimeIntegrator_UpperSat;
22858 } else {
22859 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e <=
22860 L4_MABX_P.DiscreteTimeIntegrator_LowerSat) {
22861 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
22862 L4_MABX_P.DiscreteTimeIntegrator_LowerSat;
22863 }
22864 }
22865
22866 if (L4_MABX_P.ResetIntegrator_Value > 0.0) {
22867 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 1;
22868 } else if (L4_MABX_P.ResetIntegrator_Value < 0.0) {
22869 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = -1;
22870 } else if (L4_MABX_P.ResetIntegrator_Value == 0.0) {
22871 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 0;
22872 } else {
22873 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 2;
22874 }
22875
22876 /* End of Update for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
22877
22878 /* Update for UnitDelay: '<S80>/Unit Delay' */
22879 L4_MABX_DW.UnitDelay_DSTATE_e3 = L4_MABX_B.Switch2_i1;
22880
22881 /* Update for UnitDelay: '<S375>/FixPt Unit Delay2' incorporates:
22882 * Constant: '<S375>/FixPt Constant'
22883 */
22884 L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw = L4_MABX_P.FixPtConstant_Value_p2;
22885
22886 /* Update for UnitDelay: '<S375>/FixPt Unit Delay1' */
22887 L4_MABX_DW.FixPtUnitDelay1_DSTATE_pe = L4_MABX_B.Xnew_h;
22888
22889 /* Update for UnitDelay: '<S376>/FixPt Unit Delay2' incorporates:
22890 * Constant: '<S376>/FixPt Constant'
22891 */
22892 L4_MABX_DW.FixPtUnitDelay2_DSTATE_g = L4_MABX_P.FixPtConstant_Value_el;
22893
22894 /* Update for UnitDelay: '<S376>/FixPt Unit Delay1' */
22895 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g = L4_MABX_B.Xnew_f;
22896
22897 /* Update for UnitDelay: '<S370>/Unit_Delay' */
22898 L4_MABX_DW.Unit_Delay_DSTATE_j = L4_MABX_B.DigitalClock_d;
22899
22900 /* End of Update for SubSystem: '<S65>/Task_10ms' */
22901
22902 /* Update for Atomic SubSystem: '<S851>/CAN_TX_10ms' */
22903
22904 /* Update for UnitDelay: '<S1008>/Unit_Delay' */
22905 L4_MABX_DW.Unit_Delay_DSTATE_kh = L4_MABX_B.Operator_pr;
22906
22907 /* Update for UnitDelay: '<S1009>/Unit Delay' */
22908 L4_MABX_DW.UnitDelay_DSTATE_ee = L4_MABX_B.Switch1_ga;
22909
22910 /* End of Update for SubSystem: '<S851>/CAN_TX_10ms' */
22911
22912 /* Update for UnitDelay: '<S861>/Unit Delay2' */
22913 L4_MABX_DW.UnitDelay2_DSTATE = L4_MABX_B.enTPCM;
22914
22915 /* Update for UnitDelay: '<S861>/Unit Delay1' */
22916 L4_MABX_DW.UnitDelay1_DSTATE_c = L4_MABX_B.TPDT_count;
22917
22918 /* Update for UnitDelay: '<S861>/Unit Delay3' */
22919 L4_MABX_DW.UnitDelay3_DSTATE = L4_MABX_B.enTPDT;
22920
22921 /* Update for UnitDelay: '<S3>/Unit_Delay' incorporates:
22922 * Constant: '<S210>/Constant'
22923 * Constant: '<S80>/zero'
22924 */
22925 L4_MABX_DW.Unit_Delay_1_DSTATE = L4_MABX_B.Subtract_c1;
22926 L4_MABX_DW.Unit_Delay_10_DSTATE = L4_MABX_B.Add1_hl;
22927 L4_MABX_DW.Unit_Delay_100_DSTATE = L4_MABX_B.SFunction1_o3_n1;
22928 L4_MABX_DW.Unit_Delay_101_DSTATE = L4_MABX_B.SPN514_NominalFrictionPercentTo;
22929 L4_MABX_DW.Unit_Delay_102_DSTATE = L4_MABX_B.SPN2978_EstEngParasiticLossesPe;
22930 L4_MABX_DW.Unit_Delay_103_DSTATE = L4_MABX_B.SPN1760_GrossCombinationVehicle;
22931 L4_MABX_DW.Unit_Delay_104_DSTATE = L4_MABX_B.ACCDistanceAlertSignal;
22932 L4_MABX_DW.Unit_Delay_105_DSTATE = L4_MABX_B.ForwardCollisionWarning;
22933 L4_MABX_DW.Unit_Delay_106_DSTATE = L4_MABX_B.SPN544_EngineReferenceTorque;
22934 L4_MABX_DW.Unit_Delay_107_DSTATE = L4_MABX_B.SFunction1_o4_c;
22935 L4_MABX_DW.Unit_Delay_108_DSTATE = L4_MABX_B.SFunction1_o5_c;
22936 L4_MABX_DW.Unit_Delay_109_DSTATE = L4_MABX_B.SFunction1_o6_o;
22937 L4_MABX_DW.Unit_Delay_11_DSTATE = L4_MABX_B.Switch2_i1;
22938 L4_MABX_DW.Unit_Delay_110_DSTATE = L4_MABX_B.SFunction1_o7_l;
22939 L4_MABX_DW.Unit_Delay_111_DSTATE = SteerWheelAngle;
22940 L4_MABX_DW.Unit_Delay_112_DSTATE = YawRate;
22941 L4_MABX_DW.Unit_Delay_113_DSTATE = SPN1810_LongitudinalAcceleration;
22942 L4_MABX_DW.Unit_Delay_114_DSTATE = L4_MABX_B.SFunction1_o2_ix;
22943 L4_MABX_DW.Unit_Delay_115_DSTATE = L4_MABX_B.SFunction1_o3_dm;
22944 L4_MABX_DW.Unit_Delay_116_DSTATE = L4_MABX_B.SFunction1_o5_o;
22945 L4_MABX_DW.Unit_Delay_117_DSTATE = L4_MABX_B.SFunction1_o1_ih;
22946 L4_MABX_DW.Unit_Delay_118_DSTATE = L4_MABX_B.SFunction1_o3_oc;
22947 L4_MABX_DW.Unit_Delay_119_DSTATE = L4_MABX_B.LogicalOperator1_p;
22948 L4_MABX_DW.Unit_Delay_12_DSTATE = L4_MABX_B.DiscreteTimeIntegrator_h;
22949 L4_MABX_DW.Unit_Delay_120_DSTATE = L4_MABX_B.LogicalOperator1_m;
22950 L4_MABX_DW.Unit_Delay_121_DSTATE = L4_MABX_B.PitchAngleExRange;
22951 L4_MABX_DW.Unit_Delay_122_DSTATE = L4_MABX_B.SFunction1_o3_km;
22952 L4_MABX_DW.Unit_Delay_123_DSTATE = L4_MABX_B.SFunction1_o1_in;
22953 L4_MABX_DW.Unit_Delay_124_DSTATE = L4_MABX_B.SFunction1_o2_nr;
22954 L4_MABX_DW.Unit_Delay_125_DSTATE = L4_MABX_B.Latitude_;
22955 L4_MABX_DW.Unit_Delay_126_DSTATE = L4_MABX_B.Longitude_;
22956 L4_MABX_DW.Unit_Delay_127_DSTATE = L4_MABX_B.HDOP_;
22957 L4_MABX_DW.Unit_Delay_128_DSTATE = L4_MABX_B.XPRControlMode;
22958 L4_MABX_DW.Unit_Delay_129_DSTATE = L4_MABX_B.XPRErrorState;
22959 L4_MABX_DW.Unit_Delay_13_DSTATE = L4_MABX_B.numLanePoints_j;
22960 L4_MABX_DW.Unit_Delay_130_DSTATE = L4_MABX_B.PressureP1;
22961 L4_MABX_DW.Unit_Delay_131_DSTATE = L4_MABX_B.PressureP4;
22962 L4_MABX_DW.Unit_Delay_132_DSTATE = L4_MABX_B.PressureP21;
22963 L4_MABX_DW.Unit_Delay_133_DSTATE = L4_MABX_B.PressureP22;
22964 L4_MABX_DW.Unit_Delay_134_DSTATE = L4_MABX_B.PressureP42;
22965 L4_MABX_DW.Unit_Delay_135_DSTATE = ReAX_ActualHandwheelPos;
22966 L4_MABX_DW.Unit_Delay_136_DSTATE = ReAX_EchoedSteerWheelPos;
22967 L4_MABX_DW.Unit_Delay_137_DSTATE = L4_MABX_B.SystemsOk;
22968 L4_MABX_DW.Unit_Delay_138_DSTATE = SupervisorMode;
22969 L4_MABX_DW.Unit_Delay_139_DSTATE = CurrentAzimuth_rad;
22970 L4_MABX_DW.Unit_Delay_14_DSTATE = L4_MABX_B.correctedError;
22971 L4_MABX_DW.Unit_Delay_140_DSTATE = TargetAzimuth_rad;
22972 L4_MABX_DW.Unit_Delay_141_DSTATE = CurrentVelocity_kph;
22973 L4_MABX_DW.Unit_Delay_142_DSTATE = TargetVelocity_kph;
22974 L4_MABX_DW.Unit_Delay_143_DSTATE = Curvature;
22975 L4_MABX_DW.Unit_Delay_144_DSTATE = CrosstrackError;
22976 L4_MABX_DW.Unit_Delay_15_DSTATE = L4_MABX_B.Switch1_j;
22977 L4_MABX_DW.Unit_Delay_16_DSTATE = L4_MABX_B.rad2deg1;
22978 L4_MABX_DW.Unit_Delay_17_DSTATE = L4_MABX_B.If_Then_Else_i.Switch;
22979 L4_MABX_DW.Unit_Delay_18_DSTATE = L4_MABX_B.APTC_arb_pedal_low_idl_sw_o;
22980 L4_MABX_DW.Unit_Delay_19_DSTATE = L4_MABX_B.If_Then_Else_f.Switch;
22981 L4_MABX_DW.Unit_Delay_2_DSTATE = L4_MABX_B.Add3;
22982 L4_MABX_DW.Unit_Delay_20_DSTATE = L4_MABX_P.Constant_Value_jg4;
22983 L4_MABX_DW.Unit_Delay_21_DSTATE = L4_MABX_B.If_Then_Else_pi.Switch;
22984 L4_MABX_DW.Unit_Delay_22_DSTATE = L4_MABX_B.Add_ds;
22985 L4_MABX_DW.Unit_Delay_23_DSTATE = L4_MABX_B.If_Then_Else_k.Switch;
22986 L4_MABX_DW.Unit_Delay_24_DSTATE = L4_MABX_B.Product_i;
22987 L4_MABX_DW.Unit_Delay_25_DSTATE = L4_MABX_B.PID_i_term_c;
22988 L4_MABX_DW.Unit_Delay_26_DSTATE = L4_MABX_B.PID_d_term_c;
22989 L4_MABX_DW.Unit_Delay_27_DSTATE = L4_MABX_B.PID_hold_i_term_f_b;
22990 L4_MABX_DW.Unit_Delay_28_DSTATE = L4_MABX_B.ThrottlePID_Y_m;
22991 L4_MABX_DW.Unit_Delay_29_DSTATE = L4_MABX_B.MinMax1_nv;
22992 L4_MABX_DW.Unit_Delay_3_DSTATE = L4_MABX_B.Add_px;
22993 L4_MABX_DW.Unit_Delay_30_DSTATE = L4_MABX_B.F_Ignition_relay_command_i;
22994 L4_MABX_DW.Unit_Delay_31_DSTATE = L4_MABX_B.F_Inverter_relay_command_p;
22995 L4_MABX_DW.Unit_Delay_32_DSTATE = L4_MABX_B.F_MABX_relay_command_n;
22996 L4_MABX_DW.Unit_Delay_33_DSTATE = L4_MABX_B.F_Sensor_relay_command_k;
22997 L4_MABX_DW.Unit_Delay_34_DSTATE = L4_MABX_B.BrkPedArbBrakeSwitch_c;
22998 L4_MABX_DW.Unit_Delay_35_DSTATE = L4_MABX_B.Diff;
22999 L4_MABX_DW.Unit_Delay_36_DSTATE = L4_MABX_B.F_Brake_control_active;
23000 L4_MABX_DW.Unit_Delay_37_DSTATE = L4_MABX_B.F_Hold_brakes_at_zero_d;
23001 L4_MABX_DW.Unit_Delay_38_DSTATE = L4_MABX_B.BrakingPID_Y_k;
23002 L4_MABX_DW.Unit_Delay_39_DSTATE = 0.0;
23003 L4_MABX_DW.Unit_Delay_4_DSTATE = L4_MABX_B.Product_d;
23004 L4_MABX_DW.Unit_Delay_40_DSTATE = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
23005 L4_MABX_DW.Unit_Delay_41_DSTATE = L4_MABX_B.Vehicle_speed_target_n;
23006 L4_MABX_DW.Unit_Delay_42_DSTATE = L4_MABX_B.VSPD_HYST_KPH_APV_f;
23007 L4_MABX_DW.Unit_Delay_43_DSTATE = L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b;
23008 L4_MABX_DW.Unit_Delay_44_DSTATE = L4_MABX_B.ACCEL_LIM_MS2_APV_b;
23009 L4_MABX_DW.Unit_Delay_46_DSTATE = AutonomousOutputEnabled;
23010 L4_MABX_DW.Unit_Delay_5_DSTATE = L4_MABX_B.Switch2_i;
23011 L4_MABX_DW.Unit_Delay_6_DSTATE = L4_MABX_B.Conversion;
23012 L4_MABX_DW.Unit_Delay_7_DSTATE = L4_MABX_B.Add2;
23013 L4_MABX_DW.Unit_Delay_8_DSTATE = L4_MABX_P.zero_Value;
23014 L4_MABX_DW.Unit_Delay_82_DSTATE = EngagePB;
23015 L4_MABX_DW.Unit_Delay_85_DSTATE = Pedal_pwm_position;
23016 L4_MABX_DW.Unit_Delay_86_DSTATE = L4_MABX_B.IgnitionKeySwitch_voltage;
23017 L4_MABX_DW.Unit_Delay_87_DSTATE = L4_MABX_B.SFunction1_o8_ci;
23018 L4_MABX_DW.Unit_Delay_88_DSTATE = L4_MABX_B.SFunction1_o2_nx;
23019 L4_MABX_DW.Unit_Delay_89_DSTATE = L4_MABX_B.SFunction1_o7_l3;
23020 L4_MABX_DW.Unit_Delay_9_DSTATE = L4_MABX_B.Add1_hl;
23021 L4_MABX_DW.Unit_Delay_90_DSTATE = L4_MABX_B.SFunction1_o1_loi;
23022 L4_MABX_DW.Unit_Delay_91_DSTATE = L4_MABX_B.SFunction1_o1_lo;
23023 L4_MABX_DW.Unit_Delay_92_DSTATE = L4_MABX_B.SFunction1_o2_pw;
23024 L4_MABX_DW.Unit_Delay_93_DSTATE = L4_MABX_B.SFunction1_o4_h5;
23025 L4_MABX_DW.Unit_Delay_94_DSTATE = L4_MABX_B.SPN524_TransSelectedGear;
23026 L4_MABX_DW.Unit_Delay_95_DSTATE = L4_MABX_B.SPN523_TransCurrentGear;
23027 L4_MABX_DW.Unit_Delay_96_DSTATE = L4_MABX_B.SPN526_TransActualGearRatio;
23028 L4_MABX_DW.Unit_Delay_97_DSTATE = L4_MABX_B.SFunction1_o4_j0;
23029 L4_MABX_DW.Unit_Delay_98_DSTATE = L4_MABX_B.SFunction1_o2_p0;
23030 L4_MABX_DW.Unit_Delay_99_DSTATE = L4_MABX_B.SFunction1_o5_mg;
23031
23032 /* Update for UnitDelay: '<S651>/Unit_Delay2' */
23033 L4_MABX_DW.Unit_Delay2_DSTATE_f = L4_MABX_B.LogicalOperator2_k;
23034
23035 /* Update for UnitDelay: '<S651>/Unit_Delay1' incorporates:
23036 * Constant: '<S651>/Constant1'
23037 */
23038 L4_MABX_DW.Unit_Delay1_DSTATE_d = L4_MABX_P.Constant1_Value_fd;
23039
23040 /* Update for UnitDelay: '<S658>/Unit_Delay' */
23041 L4_MABX_DW.Unit_Delay_DSTATE_en = L4_MABX_B.LogicalOperator1_m;
23042
23043 /* Update for UnitDelay: '<S749>/Delay Input1' */
23044 L4_MABX_DW.DelayInput1_DSTATE_e = L4_MABX_B.Compare_e;
23045
23046 /* Update for UnitDelay: '<S750>/Unit Delay' */
23047 L4_MABX_DW.UnitDelay_DSTATE_i = L4_MABX_B.Switch_n;
23048
23049 /* Update for UnitDelay: '<S744>/Unit Delay' */
23050 L4_MABX_DW.UnitDelay_DSTATE_de = L4_MABX_B.AND_g;
23051
23052 /* Update for UnitDelay: '<S748>/Delay Input1' */
23053 L4_MABX_DW.DelayInput1_DSTATE_h = L4_MABX_B.Compare_b0;
23054
23055 /* Update for UnitDelay: '<S750>/Unit Delay1' */
23056 L4_MABX_DW.UnitDelay1_DSTATE_o = L4_MABX_B.AND_l;
23057
23058 /* Update for UnitDelay: '<S751>/Unit Delay' */
23059 L4_MABX_DW.UnitDelay_DSTATE_n = L4_MABX_B.Switch_m;
23060
23061 /* Update for UnitDelay: '<S751>/Unit Delay1' */
23062 L4_MABX_DW.UnitDelay1_DSTATE_i = L4_MABX_B.AND_g;
23063
23064 /* Update for UnitDelay: '<S10>/Unit_Delay' incorporates:
23065 * Constant: '<S10>/Constant'
23066 */
23067 L4_MABX_DW.Unit_Delay_DSTATE_do = L4_MABX_P.Constant_Value_g5;
23068
23069 /* Update absolute time */
23070 /* The "clockTick0" counts the number of times the code of this task has
23071 * been executed. The absolute time is the multiplication of "clockTick0"
23072 * and "Timing.stepSize0". Size of "clockTick0" ensures timer will not
23073 * overflow during the application lifespan selected.
23074 * Timer of this task consists of two 32 bit unsigned integers.
23075 * The two integers represent the low bits Timing.clockTick0 and the high bits
23076 * Timing.clockTickH0. When the low bit overflows to 0, the high bits increment.
23077 */
23078 if (!(++L4_MABX_M->Timing.clockTick0)) {
23079 ++L4_MABX_M->Timing.clockTickH0;
23080 }
23081
23082 L4_MABX_M->Timing.t[0] = L4_MABX_M->Timing.clockTick0 *
23083 L4_MABX_M->Timing.stepSize0 + L4_MABX_M->Timing.clockTickH0 *
23084 L4_MABX_M->Timing.stepSize0 * 4294967296.0;
23085}
23086
23087/* Model output function for TID1 */
23088void L4_MABX_output1(void) /* Sample time: [0.02s, 0.0s] */
23089{
23090 int_T tid = 1;
23091 int32_T i;
23092 uint32_T q0;
23093 uint32_T qY;
23094 uint8_T tmp;
23095 real_T u0;
23096 real_T u1;
23097 real_T u2;
23098
23099 /* Outputs for Atomic SubSystem: '<S851>/CAN_TX_20ms' */
23100
23101 /* Switch: '<S1017>/Switch1' incorporates:
23102 * Constant: '<S1017>/Constant4'
23103 */
23104 if (L4_MABX_B.AutonomousOutputEnabled_p) {
23105 /* Product: '<S1017>/Divide1' incorporates:
23106 * Constant: '<S1017>/Constant2'
23107 */
23108 L4_MABX_B.XBRExternalAccelDemand_i = L4_MABX_B.BrakingPID_Y_h *
23109 L4_MABX_P.Constant2_Value_h1;
23110 L4_MABX_B.XBRExternalAccelDemand = L4_MABX_B.XBRExternalAccelDemand_i;
23111 } else {
23112 L4_MABX_B.XBRExternalAccelDemand = L4_MABX_P.Constant4_Value_j0;
23113 }
23114
23115 /* End of Switch: '<S1017>/Switch1' */
23116
23117 /* MultiPortSwitch: '<S1017>/Multiport Switch' incorporates:
23118 * Constant: '<S1017>/Constant10'
23119 * Constant: '<S1017>/Constant7'
23120 * Constant: '<S1017>/Constant8'
23121 * Constant: '<S1017>/Constant9'
23122 */
23123 switch ((int32_T)L4_MABX_B.BrakingControlActive_f) {
23124 case 0:
23125 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant10_Value_d;
23126 break;
23127
23128 case 1:
23129 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant7_Value_i;
23130 break;
23131
23132 case 2:
23133 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant8_Value_p;
23134 break;
23135
23136 default:
23137 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant9_Value_b;
23138 break;
23139 }
23140
23141 /* End of MultiPortSwitch: '<S1017>/Multiport Switch' */
23142
23143 /* Outputs for Atomic SubSystem: '<S1017>/If_Then_Else' */
23144
23145 /* Constant: '<S1017>/XBRValueOverride' incorporates:
23146 * Constant: '<S1017>/XBRControlMode'
23147 * Constant: '<S1017>/XBRControlModeOVR'
23148 * Constant: '<S1017>/XBREnduranceBrakeIntegrationMode'
23149 * Constant: '<S1017>/XBREnduranceBrakeIntegrationModeOVR'
23150 * Constant: '<S1017>/XBRExternalAccelDemandOVR'
23151 * Constant: '<S1017>/XBRPassThroughActiveOVR'
23152 * Constant: '<S1017>/XBRPassThroughEnabled'
23153 * Constant: '<S1017>/XBRPassThroughEnabledOVR'
23154 * Constant: '<S1017>/XBRPriority'
23155 * Constant: '<S1017>/XBRPriorityOVR'
23156 * Constant: '<S1017>/XBRUrgency'
23157 * Constant: '<S1017>/XBRUrgencyOVR'
23158 */
23159 L4_MABX_If_Then_Else_p(L4_MABX_P.XBRValueOverride_Value,
23160 L4_MABX_P.XBRExternalAccelDemandOVR_Value,
23161 L4_MABX_P.XBREnduranceBrakeIntegrationMod, L4_MABX_P.XBRPriorityOVR_Value,
23162 L4_MABX_P.XBRControlModeOVR_Value, L4_MABX_P.XBRPassThroughActiveOVR_Value,
23163 L4_MABX_P.XBRUrgencyOVR_Value, L4_MABX_P.XBRPassThroughEnabledOVR_Value,
23164 L4_MABX_B.XBRExternalAccelDemand, L4_MABX_P.XBREnduranceBrakeIntegrationM_g,
23165 L4_MABX_P.XBRPriority_Value, L4_MABX_P.XBRControlMode_Value,
23166 L4_MABX_B.XBRPassThroughActive, L4_MABX_P.XBRUrgency_Value,
23167 L4_MABX_P.XBRPassThroughEnabled_Value, &L4_MABX_B.If_Then_Else_pl);
23168
23169 /* End of Outputs for SubSystem: '<S1017>/If_Then_Else' */
23170
23171 /* DataTypeConversion: '<S1020>/Data Type Conversion1' */
23172 L4_MABX_B.DataTypeConversion1_e = (real_T)
23173 L4_MABX_B.If_Then_Else_pl.XBREnduranceBrakeIntegrationMod;
23174
23175 /* DataTypeConversion: '<S1020>/Data Type Conversion2' */
23176 L4_MABX_B.DataTypeConversion2_fo = (real_T)
23177 L4_MABX_B.If_Then_Else_pl.XBRPriority;
23178
23179 /* DataTypeConversion: '<S1020>/Data Type Conversion3' */
23180 L4_MABX_B.DataTypeConversion3_d = (real_T)
23181 L4_MABX_B.If_Then_Else_pl.XBRControlMode;
23182
23183 /* DataTypeConversion: '<S1020>/Data Type Conversion4' */
23184 L4_MABX_B.DataTypeConversion4_a =
23185 L4_MABX_B.If_Then_Else_pl.XBRExternalAccelDemand;
23186
23187 /* DataTypeConversion: '<S1020>/Data Type Conversion5' */
23188 L4_MABX_B.DataTypeConversion5_b = (real_T)
23189 L4_MABX_B.If_Then_Else_pl.XBRPassThroughActive;
23190
23191 /* DataTypeConversion: '<S1020>/Data Type Conversion6' */
23192 L4_MABX_B.DataTypeConversion6_m = L4_MABX_B.If_Then_Else_pl.XBRUrgency;
23193
23194 /* DataTypeConversion: '<S1020>/Data Type Conversion7' */
23195 L4_MABX_B.DataTypeConversion7_l =
23196 L4_MABX_B.If_Then_Else_pl.XBRPassThroughEnabled;
23197
23198 /* UnitDelay: '<S1013>/Unit_Delay' */
23199 L4_MABX_B.Unit_Delay_jao = L4_MABX_DW.Unit_Delay_DSTATE_dq;
23200
23201 /* Logic: '<S1013>/Logical Operator8' */
23202 L4_MABX_B.LogicalOperator8_c = !L4_MABX_B.TmpRTBAtLogicalOperator8Inport1;
23203
23204 /* Logic: '<S1013>/Logical Operator7' */
23205 L4_MABX_B.LogicalOperator7_m = (L4_MABX_B.Unit_Delay_jao &&
23206 L4_MABX_B.LogicalOperator8_c);
23207
23208 /* Logic: '<S1013>/Logical Operator1' */
23209 L4_MABX_B.LogicalOperator1_l = (L4_MABX_B.LogicalOperator7_m ||
23210 L4_MABX_B.TmpRTBAtLogicalOperator1Inport2);
23211
23212 /* DataTypeConversion: '<S1013>/Data Type Conversion' incorporates:
23213 * Constant: '<S857>/CANT_PROPB_XBR_B3_CHANNEL_APV'
23214 */
23215 u0 = L4_MABX_P.CANT_PROPB_XBR_B3_CHANNEL_APV_V;
23216 if (u0 < 256.0) {
23217 if (u0 >= 0.0) {
23218 tmp = (uint8_T)u0;
23219 } else {
23220 tmp = 0U;
23221 }
23222 } else {
23223 tmp = MAX_uint8_T;
23224 }
23225
23226 L4_MABX_B.DataTypeConversion_c1 = tmp;
23227
23228 /* End of DataTypeConversion: '<S1013>/Data Type Conversion' */
23229
23230 /* S-Function (sfix_bitop): '<S1018>/Operator' */
23231 L4_MABX_B.Operator_e = (uint8_T)(L4_MABX_B.DataTypeConversion_c1 &
23232 L4_MABX_P.Operator_BitMask_ag);
23233
23234 /* DataTypeConversion: '<S1018>/DataType' */
23235 L4_MABX_B.DataType_ag = L4_MABX_B.Operator_e;
23236
23237 /* DataTypeConversion: '<S1013>/Data Type Conversion2' */
23238 L4_MABX_B.DataTypeConversion2_of = (L4_MABX_B.DataType_ag != 0);
23239
23240 /* Logic: '<S1013>/Logical Operator' */
23241 L4_MABX_B.LogicalOperator_l = (L4_MABX_B.LogicalOperator1_l &&
23242 L4_MABX_B.DataTypeConversion2_of);
23243
23244 /* Outputs for Enabled SubSystem: '<S1020>/PropB_XBR_B3' incorporates:
23245 * EnablePort: '<S1021>/Enable'
23246 */
23247 if (L4_MABX_B.LogicalOperator_l) {
23248 /* S-Function (rti_commonblock): '<S1021>/S-Function1' */
23249 /* This comment workarounds a code generation problem */
23250
23251 /* dSPACE RTICAN TX Message Block: "PropB_XBR_B3" Id:218038707 */
23252 {
23253 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23254
23255 Float32 delayTime = 0.0;
23256
23257 /* ... Read status and timestamp info (previous message) */
23258 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]);
23259
23260 /* Convert timestamp */
23261 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->processed) {
23262 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp =
23263 rtk_dsts_time_to_simtime_convert
23264 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp);
23265 }
23266
23267 /* Messages with timestamp zero have been received in pause/stop state
23268 and must not be handled.
23269 */
23270 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp > 0.0) {
23271 L4_MABX_B.SFunction1_o1_a = (real_T)
23272 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->processed;
23273 L4_MABX_B.SFunction1_o2_gk = (real_T)
23274 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp;
23275 L4_MABX_B.SFunction1_o3_f = (real_T)
23276 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->deltatime;
23277 L4_MABX_B.SFunction1_o4_j = (real_T)
23278 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->delaytime;
23279 }
23280
23281 /* ... Encode Simulink signals of TX and RM blocks*/
23282 {
23283 rtican_Signal_t CAN_Sgn;
23284
23285 /* ...... "SPN2920_ExternalAccelerationDemand" (0|16, standard signal, unsigned int, little endian) */
23286 /* Add or substract 0.5 in order to round to nearest integer */
23287 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_a -
23288 ( -15.687 ) ) / 0.00048828125 + 0.5);
23289 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23290 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23291 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
23292
23293 /* ...... "SPN2915_XBREnduranceBrkIntegrationMode" (16|2, standard signal, unsigned int, little endian) */
23294 /* Add or substract 0.5 in order to round to nearest integer */
23295 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e ) +
23296 0.5);
23297 CAN_Sgn.UnsignedSgn &= 0x00000003;
23298 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23299
23300 /* ...... "SPN2915_XBRPriority" (18|2, standard signal, unsigned int, little endian) */
23301 /* Add or substract 0.5 in order to round to nearest integer */
23302 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_fo ) +
23303 0.5);
23304 CAN_Sgn.UnsignedSgn &= 0x00000003;
23305 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23306 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23307
23308 /* ...... "SPN2916_XBRControlMode" (20|2, standard signal, unsigned int, little endian) */
23309 /* Add or substract 0.5 in order to round to nearest integer */
23310 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_d ) +
23311 0.5);
23312 CAN_Sgn.UnsignedSgn &= 0x00000003;
23313 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23314 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23315
23316 /* ...... "XBRPassThroughActive" (22|2, standard signal, unsigned int, little endian) */
23317 /* Add or substract 0.5 in order to round to nearest integer */
23318 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_b ) +
23319 0.5);
23320 CAN_Sgn.UnsignedSgn &= 0x00000003;
23321 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23322 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23323
23324 /* ...... "SPN4099_XBRUrgency" (24|8, standard signal, unsigned int, little endian) */
23325 /* Add or substract 0.5 in order to round to nearest integer */
23326 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_m - ( 0 )
23327 ) / 0.4 + 0.5);
23328 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23329 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23330
23331 /* ...... "XBRPassThroughEnable" (54|2, standard signal, unsigned int, little endian) */
23332 /* Add or substract 0.5 in order to round to nearest integer */
23333 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_l ) +
23334 0.5);
23335 CAN_Sgn.UnsignedSgn &= 0x00000003;
23336 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23337 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23338 }
23339
23340 /* mask unused bits with '1' */
23341 CAN_Msg[4] |= 0xFF;
23342 CAN_Msg[5] |= 0xFF;
23343 CAN_Msg[6] |= 0x3F;
23344 CAN_Msg[7] |= 0xFF;
23345
23346 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23347 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3], 8,
23348 &(CAN_Msg[0]), delayTime);
23349 }
23350 }
23351
23352 /* End of Outputs for SubSystem: '<S1020>/PropB_XBR_B3' */
23353
23354 /* RelationalOperator: '<S1019>/Compare' incorporates:
23355 * Constant: '<S1019>/Constant'
23356 */
23357 L4_MABX_B.Compare_b2 = (L4_MABX_B.If_Then_Else_pl.XBRPassThroughActive ==
23358 L4_MABX_P.CompareToConstant_const_f);
23359
23360 /* Saturate: '<S1016>/Saturation' incorporates:
23361 * Constant: '<S1016>/2C2_OR_VALUE_APV'
23362 */
23363 u0 = L4_MABX_P.uC2_OR_VALUE_APV_Value;
23364 u1 = L4_MABX_P.Saturation_LowerSat_c;
23365 u2 = L4_MABX_P.Saturation_UpperSat_m;
23366 if (u0 > u2) {
23367 L4_MABX_B.Saturation_no = u2;
23368 } else if (u0 < u1) {
23369 L4_MABX_B.Saturation_no = u1;
23370 } else {
23371 L4_MABX_B.Saturation_no = u0;
23372 }
23373
23374 /* End of Saturate: '<S1016>/Saturation' */
23375
23376 /* Outputs for Atomic SubSystem: '<S1016>/If_Then_Else1' */
23377
23378 /* Constant: '<S1016>/F_2C2_OR_APV' */
23379 L4_MABX_If_Then_Else_g(L4_MABX_P.F_2C2_OR_APV_Value, L4_MABX_B.Saturation_no,
23380 L4_MABX_B.BrakingPID_Y_h3, &L4_MABX_B.If_Then_Else1_a);
23381
23382 /* End of Outputs for SubSystem: '<S1016>/If_Then_Else1' */
23383
23384 /* Gain: '<S1016>/Gain' */
23385 L4_MABX_B.Gain_p = L4_MABX_P.Gain_Gain_e * L4_MABX_B.If_Then_Else1_a.Switch;
23386
23387 /* Gain: '<S1033>/Gain' */
23388 L4_MABX_B.Gain_ps = L4_MABX_P.Gain_Gain_ez * L4_MABX_B.Gain_p;
23389
23390 /* DataTypeConversion: '<S1033>/Data Type Conversion2' */
23391 u0 = floor(L4_MABX_B.Gain_ps);
23392 if (rtIsNaN(u0) || rtIsInf(u0)) {
23393 u0 = 0.0;
23394 } else {
23395 u0 = fmod(u0, 256.0);
23396 }
23397
23398 L4_MABX_B.DataTypeConversion2_bw = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
23399 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
23400
23401 /* End of DataTypeConversion: '<S1033>/Data Type Conversion2' */
23402
23403 /* DataTypeConversion: '<S1033>/Data Type Conversion3' incorporates:
23404 * Constant: '<S1016>/BrkControlMode_Active'
23405 */
23406 u0 = floor(L4_MABX_P.BrkControlMode_Active_Value);
23407 if (rtIsNaN(u0) || rtIsInf(u0)) {
23408 u0 = 0.0;
23409 } else {
23410 u0 = fmod(u0, 256.0);
23411 }
23412
23413 L4_MABX_B.DataTypeConversion3_dd = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
23414 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
23415
23416 /* End of DataTypeConversion: '<S1033>/Data Type Conversion3' */
23417
23418 /* S-Function (sfix_bitop): '<S1033>/Bitwise Operator14' */
23419 L4_MABX_B.BitwiseOperator14 = (uint8_T)(L4_MABX_B.DataTypeConversion3_dd &
23420 L4_MABX_P.BitwiseOperator14_BitMask);
23421
23422 /* DataTypeConversion: '<S1033>/Data Type Conversion4' incorporates:
23423 * Constant: '<S1016>/BrkControlPriority'
23424 */
23425 u0 = floor(L4_MABX_P.BrkControlPriority_Value);
23426 if (rtIsNaN(u0) || rtIsInf(u0)) {
23427 u0 = 0.0;
23428 } else {
23429 u0 = fmod(u0, 256.0);
23430 }
23431
23432 L4_MABX_B.DataTypeConversion4_j = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
23433 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
23434
23435 /* End of DataTypeConversion: '<S1033>/Data Type Conversion4' */
23436
23437 /* S-Function (sfix_bitop): '<S1033>/Bitwise Operator1' */
23438 L4_MABX_B.BitwiseOperator1 = (uint8_T)(L4_MABX_B.DataTypeConversion4_j &
23439 L4_MABX_P.BitwiseOperator1_BitMask);
23440
23441 /* ArithShift: '<S1033>/Shift_Arithmetic ' */
23442 L4_MABX_B.Shift_Arithmetic_ln = (uint8_T)(L4_MABX_B.BitwiseOperator1 << 2);
23443
23444 /* DataTypeConversion: '<S1033>/Data Type Conversion12' */
23445 L4_MABX_B.DataTypeConversion12_b = L4_MABX_B.Shift_Arithmetic_ln;
23446
23447 /* DataTypeConversion: '<S1033>/Data Type Conversion6' incorporates:
23448 * Constant: '<S1033>/Constant2'
23449 */
23450 L4_MABX_B.DataTypeConversion6_c1 = L4_MABX_P.Constant2_Value_jl;
23451
23452 /* S-Function (sfix_bitop): '<S1033>/Bitwise Operator17' */
23453 L4_MABX_B.BitwiseOperator17_k = (uint8_T)(L4_MABX_B.BitwiseOperator14 |
23454 L4_MABX_B.DataTypeConversion12_b | L4_MABX_B.DataTypeConversion6_c1);
23455
23456 /* Gain: '<S1033>/Gain1' incorporates:
23457 * Constant: '<S1016>/BrkControl_RearAxlePressureProportioning'
23458 */
23459 L4_MABX_B.Gain1_o = L4_MABX_P.Gain1_Gain_m *
23460 L4_MABX_P.BrkControl_RearAxlePressureProp;
23461
23462 /* DataTypeConversion: '<S1033>/Data Type Conversion11' */
23463 u0 = floor(L4_MABX_B.Gain1_o);
23464 if (rtIsNaN(u0) || rtIsInf(u0)) {
23465 u0 = 0.0;
23466 } else {
23467 u0 = fmod(u0, 256.0);
23468 }
23469
23470 L4_MABX_B.DataTypeConversion11_no = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
23471 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
23472
23473 /* End of DataTypeConversion: '<S1033>/Data Type Conversion11' */
23474
23475 /* Reshape: '<S1036>/Reshape' incorporates:
23476 * Constant: '<S1036>/Constant'
23477 */
23478 for (i = 0; i < 16; i++) {
23479 L4_MABX_B.Reshape_m[i] = L4_MABX_P.Repeating_Sequence_Stair_OutV_p[i];
23480 }
23481
23482 /* End of Reshape: '<S1036>/Reshape' */
23483
23484 /* UnitDelay: '<S1036>/Unit_Delay' */
23485 L4_MABX_B.Unit_Delay_i0 = L4_MABX_DW.Unit_Delay_DSTATE_hh;
23486
23487 /* UnitDelay: '<S1037>/Unit Delay' */
23488 L4_MABX_B.UnitDelay_ec = L4_MABX_DW.UnitDelay_DSTATE_ir;
23489
23490 /* Switch: '<S1040>/Switch1' incorporates:
23491 * Constant: '<S1037>/E'
23492 * Constant: '<S1037>/IV'
23493 * Switch: '<S1039>/Switch1'
23494 */
23495 if (L4_MABX_B.Unit_Delay_i0) {
23496 L4_MABX_B.Switch1_i = L4_MABX_P.IV_Value_c;
23497 } else {
23498 if (L4_MABX_P.E_Value_f) {
23499 /* Sum: '<S1037>/Subtract' incorporates:
23500 * Constant: '<S1037>/Constant'
23501 * Switch: '<S1039>/Switch1'
23502 */
23503 q0 = L4_MABX_P.Constant_Value_nd;
23504 qY = q0 + L4_MABX_B.UnitDelay_ec;
23505 if (qY < q0) {
23506 qY = MAX_uint32_T;
23507 }
23508
23509 L4_MABX_B.Subtract_np = qY;
23510
23511 /* End of Sum: '<S1037>/Subtract' */
23512
23513 /* Switch: '<S1039>/Switch1' */
23514 L4_MABX_B.Switch1_pk = L4_MABX_B.Subtract_np;
23515 } else {
23516 /* Switch: '<S1039>/Switch1' */
23517 L4_MABX_B.Switch1_pk = L4_MABX_B.UnitDelay_ec;
23518 }
23519
23520 L4_MABX_B.Switch1_i = L4_MABX_B.Switch1_pk;
23521 }
23522
23523 /* End of Switch: '<S1040>/Switch1' */
23524
23525 /* Selector: '<S1036>/Selector' */
23526 L4_MABX_B.Selector_k = L4_MABX_B.Reshape_m[(int32_T)L4_MABX_B.Switch1_i - 1];
23527
23528 /* DataTypeConversion: '<S1033>/Data Type Conversion10' */
23529 L4_MABX_B.DataTypeConversion10_e = L4_MABX_B.Selector_k;
23530
23531 /* S-Function (sfix_bitop): '<S1033>/Bitwise Operator6' */
23532 L4_MABX_B.BitwiseOperator6 = (uint8_T)(L4_MABX_B.DataTypeConversion10_e &
23533 L4_MABX_P.BitwiseOperator6_BitMask);
23534
23535 /* DataTypeConversion: '<S1032>/Data Type Conversion6' incorporates:
23536 * Constant: '<S1032>/Priority'
23537 */
23538 L4_MABX_B.DataTypeConversion6_mg = L4_MABX_P.Priority_Value_b;
23539
23540 /* ArithShift: '<S1032>/Shift_Arithmetic 5' */
23541 L4_MABX_B.Shift_Arithmetic5 = L4_MABX_B.DataTypeConversion6_mg << 26;
23542
23543 /* DataTypeConversion: '<S1032>/Data Type Conversion7' incorporates:
23544 * Constant: '<S1032>/ExtendedDataPage'
23545 */
23546 L4_MABX_B.DataTypeConversion7_e4 = L4_MABX_P.ExtendedDataPage_Value_og;
23547
23548 /* ArithShift: '<S1032>/Shift_Arithmetic 6' */
23549 L4_MABX_B.Shift_Arithmetic6 = L4_MABX_B.DataTypeConversion7_e4 << 25;
23550
23551 /* DataTypeConversion: '<S1032>/Data Type Conversion8' incorporates:
23552 * Constant: '<S1032>/DataPage'
23553 */
23554 L4_MABX_B.DataTypeConversion8_c = L4_MABX_P.DataPage_Value_n;
23555
23556 /* ArithShift: '<S1032>/Shift_Arithmetic 7' */
23557 L4_MABX_B.Shift_Arithmetic7 = L4_MABX_B.DataTypeConversion8_c << 24;
23558
23559 /* DataTypeConversion: '<S1032>/Data Type Conversion9' incorporates:
23560 * Constant: '<S1032>/PDUFormat'
23561 */
23562 L4_MABX_B.DataTypeConversion9_l = L4_MABX_P.PDUFormat_Value_h;
23563
23564 /* ArithShift: '<S1032>/Shift_Arithmetic 8' */
23565 L4_MABX_B.Shift_Arithmetic8 = L4_MABX_B.DataTypeConversion9_l << 16;
23566
23567 /* DataTypeConversion: '<S1032>/Data Type Conversion10' incorporates:
23568 * Constant: '<S1032>/PDUSpecific'
23569 */
23570 L4_MABX_B.DataTypeConversion10_o = L4_MABX_P.PDUSpecific_Value_c;
23571
23572 /* ArithShift: '<S1032>/Shift_Arithmetic 9' */
23573 L4_MABX_B.Shift_Arithmetic9 = L4_MABX_B.DataTypeConversion10_o << 8;
23574
23575 /* DataTypeConversion: '<S1032>/Data Type Conversion11' incorporates:
23576 * Constant: '<S1032>/SourceAddress'
23577 */
23578 L4_MABX_B.DataTypeConversion11_n = L4_MABX_P.SourceAddress_Value_j2;
23579
23580 /* S-Function (sfix_bitop): '<S1032>/Bitwise Operator17' */
23581 L4_MABX_B.BitwiseOperator17 = L4_MABX_B.Shift_Arithmetic5 |
23582 L4_MABX_B.Shift_Arithmetic6 | L4_MABX_B.Shift_Arithmetic7 |
23583 L4_MABX_B.Shift_Arithmetic8 | L4_MABX_B.Shift_Arithmetic9 |
23584 L4_MABX_B.DataTypeConversion11_n;
23585
23586 /* DataTypeConversion: '<S1033>/Data Type Conversion7' */
23587 L4_MABX_B.DataTypeConversion7_n = L4_MABX_B.BitwiseOperator17;
23588
23589 /* S-Function (sfix_bitop): '<S1033>/Bitwise Operator2' */
23590 L4_MABX_B.BitwiseOperator2 = L4_MABX_B.DataTypeConversion7_n &
23591 L4_MABX_P.BitwiseOperator2_BitMask;
23592
23593 /* S-Function (sfix_bitop): '<S1033>/Bitwise Operator3' */
23594 L4_MABX_B.BitwiseOperator3 = L4_MABX_B.DataTypeConversion7_n &
23595 L4_MABX_P.BitwiseOperator3_BitMask;
23596
23597 /* ArithShift: '<S1033>/Shift_Arithmetic 3' */
23598 L4_MABX_B.Shift_Arithmetic3_d = L4_MABX_B.BitwiseOperator3 >> 8;
23599
23600 /* DataTypeConversion: '<S1033>/Data Type Conversion5' */
23601 L4_MABX_B.DataTypeConversion5_m = (uint8_T)L4_MABX_B.Shift_Arithmetic3_d;
23602
23603 /* S-Function (sfix_bitop): '<S1033>/Bitwise Operator4' */
23604 L4_MABX_B.BitwiseOperator4 = L4_MABX_B.DataTypeConversion7_n &
23605 L4_MABX_P.BitwiseOperator4_BitMask;
23606
23607 /* ArithShift: '<S1033>/Shift_Arithmetic 4' */
23608 L4_MABX_B.Shift_Arithmetic4_m = L4_MABX_B.BitwiseOperator4 >> 16;
23609
23610 /* DataTypeConversion: '<S1033>/Data Type Conversion8' */
23611 L4_MABX_B.DataTypeConversion8_b = (uint8_T)L4_MABX_B.Shift_Arithmetic4_m;
23612
23613 /* S-Function (sfix_bitop): '<S1033>/Bitwise Operator5' */
23614 L4_MABX_B.BitwiseOperator5 = L4_MABX_B.DataTypeConversion7_n &
23615 L4_MABX_P.BitwiseOperator5_BitMask;
23616
23617 /* ArithShift: '<S1033>/Shift_Arithmetic 5' */
23618 L4_MABX_B.Shift_Arithmetic5_o = L4_MABX_B.BitwiseOperator5 >> 24;
23619
23620 /* DataTypeConversion: '<S1033>/Data Type Conversion9' */
23621 L4_MABX_B.DataTypeConversion9_ae = (uint8_T)L4_MABX_B.Shift_Arithmetic5_o;
23622
23623 /* Sum: '<S1033>/Add2' incorporates:
23624 * Constant: '<S1033>/Constant'
23625 * Constant: '<S1033>/Constant1'
23626 * Constant: '<S1033>/Constant3'
23627 * Constant: '<S1033>/Constant4'
23628 */
23629 L4_MABX_B.Add2_e = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
23630 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
23631 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
23632 (uint8_T)((uint32_T)L4_MABX_B.DataTypeConversion2_bw +
23633 L4_MABX_B.BitwiseOperator17_k) + L4_MABX_B.DataTypeConversion11_no)
23634 + L4_MABX_P.Constant3_Value_ok) + L4_MABX_P.Constant4_Value_j4) +
23635 L4_MABX_P.Constant_Value_hqd) + L4_MABX_P.Constant1_Value_cg) + (uint8_T)
23636 L4_MABX_B.BitwiseOperator2) + L4_MABX_B.DataTypeConversion5_m) +
23637 L4_MABX_B.DataTypeConversion8_b) + L4_MABX_B.DataTypeConversion9_ae) +
23638 L4_MABX_B.BitwiseOperator6);
23639
23640 /* ArithShift: '<S1033>/Shift_Arithmetic 6' */
23641 L4_MABX_B.Shift_Arithmetic6_l = (uint8_T)((uint32_T)L4_MABX_B.Add2_e >> 4);
23642
23643 /* Sum: '<S1033>/Add3' */
23644 L4_MABX_B.Add3_f = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic6_l +
23645 L4_MABX_B.Add2_e);
23646
23647 /* S-Function (sfix_bitop): '<S1033>/Bitwise Operator8' */
23648 L4_MABX_B.BitwiseOperator8 = (uint8_T)(L4_MABX_B.Add3_f &
23649 L4_MABX_P.BitwiseOperator8_BitMask);
23650
23651 /* ArithShift: '<S1033>/Shift_Arithmetic 7' */
23652 L4_MABX_B.Shift_Arithmetic7_a = (uint8_T)(L4_MABX_B.BitwiseOperator8 << 4);
23653
23654 /* S-Function (sfix_bitop): '<S1033>/Bitwise Operator7' */
23655 L4_MABX_B.BitwiseOperator7 = (uint8_T)(L4_MABX_B.BitwiseOperator6 |
23656 L4_MABX_B.Shift_Arithmetic7_a);
23657
23658 /* DataTypeConversion: '<S1014>/Data Type Conversion1' incorporates:
23659 * Constant: '<S1033>/Constant'
23660 * Constant: '<S1033>/Constant1'
23661 * Constant: '<S1033>/Constant3'
23662 * Constant: '<S1033>/Constant4'
23663 */
23664 L4_MABX_B.DataTypeConversion1_d[0] = L4_MABX_B.DataTypeConversion2_bw;
23665 L4_MABX_B.DataTypeConversion1_d[1] = L4_MABX_B.BitwiseOperator17_k;
23666 L4_MABX_B.DataTypeConversion1_d[2] = L4_MABX_B.DataTypeConversion11_no;
23667 L4_MABX_B.DataTypeConversion1_d[3] = L4_MABX_P.Constant3_Value_ok;
23668 L4_MABX_B.DataTypeConversion1_d[4] = L4_MABX_P.Constant4_Value_j4;
23669 L4_MABX_B.DataTypeConversion1_d[5] = L4_MABX_P.Constant_Value_hqd;
23670 L4_MABX_B.DataTypeConversion1_d[6] = L4_MABX_P.Constant1_Value_cg;
23671 L4_MABX_B.DataTypeConversion1_d[7] = L4_MABX_B.BitwiseOperator7;
23672
23673 /* Outputs for Enabled SubSystem: '<S1022>/PropB_Bendix_2C2_XPR' incorporates:
23674 * EnablePort: '<S1023>/Enable'
23675 */
23676 /* Constant: '<S1016>/CPV' */
23677 if (L4_MABX_P.CPV_Value_h0) {
23678 /* S-Function (rti_commonblock): '<S1023>/S-Function1' */
23679 /* This comment workarounds a code generation problem */
23680
23681 /* dSPACE RTICAN TX Message Block: "PropB_Bendix_2C2_XPR" Id:218060389 */
23682 {
23683 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23684
23685 Float32 delayTime = 0.0;
23686
23687 /* ... Read status and timestamp info (previous message) */
23688 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]);
23689
23690 /* Convert timestamp */
23691 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->processed) {
23692 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp =
23693 rtk_dsts_time_to_simtime_convert
23694 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp);
23695 }
23696
23697 /* Messages with timestamp zero have been received in pause/stop state
23698 and must not be handled.
23699 */
23700 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp > 0.0) {
23701 L4_MABX_B.SFunction1_o1_p = (real_T)
23702 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->processed;
23703 L4_MABX_B.SFunction1_o2_in = (real_T)
23704 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp;
23705 L4_MABX_B.SFunction1_o3_b = (real_T)
23706 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->deltatime;
23707 L4_MABX_B.SFunction1_o4_g = (real_T)
23708 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->delaytime;
23709 }
23710
23711 /* ... Encode Simulink signals of TX and RM blocks*/
23712 {
23713 rtican_Signal_t CAN_Sgn;
23714
23715 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
23716 /* Add or substract 0.5 in order to round to nearest integer */
23717 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[0] ) +
23718 0.5);
23719 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23720 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23721
23722 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
23723 /* Add or substract 0.5 in order to round to nearest integer */
23724 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[1] ) +
23725 0.5);
23726 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23727 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
23728
23729 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
23730 /* Add or substract 0.5 in order to round to nearest integer */
23731 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[2] ) +
23732 0.5);
23733 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23734 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23735
23736 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
23737 /* Add or substract 0.5 in order to round to nearest integer */
23738 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[3] ) +
23739 0.5);
23740 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23741 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23742
23743 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
23744 /* Add or substract 0.5 in order to round to nearest integer */
23745 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[4] ) +
23746 0.5);
23747 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23748 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23749
23750 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
23751 /* Add or substract 0.5 in order to round to nearest integer */
23752 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[5] ) +
23753 0.5);
23754 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23755 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
23756
23757 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
23758 /* Add or substract 0.5 in order to round to nearest integer */
23759 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[6] ) +
23760 0.5);
23761 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23762 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23763
23764 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
23765 /* Add or substract 0.5 in order to round to nearest integer */
23766 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[7] ) +
23767 0.5);
23768 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23769 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23770 }
23771
23772 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23773 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665], 8,
23774 &(CAN_Msg[0]), delayTime);
23775 }
23776 }
23777
23778 /* End of Constant: '<S1016>/CPV' */
23779 /* End of Outputs for SubSystem: '<S1022>/PropB_Bendix_2C2_XPR' */
23780
23781 /* DataTypeConversion: '<S1030>/Data Type Conversion' */
23782 L4_MABX_B.DataTypeConversion_d = L4_MABX_B.FrontAxleSpeed_d;
23783
23784 /* DataTypeConversion: '<S1030>/Data Type Conversion1' */
23785 L4_MABX_B.DataTypeConversion1_h = L4_MABX_B.SPN1807_SteeringWheelAngle_o;
23786
23787 /* DataTypeConversion: '<S1030>/Data Type Conversion2' */
23788 L4_MABX_B.DataTypeConversion2_mo = L4_MABX_B.SPN1808_YawRate_f;
23789
23790 /* DataTypeConversion: '<S1030>/Data Type Conversion3' */
23791 L4_MABX_B.DataTypeConversion3_g = L4_MABX_B.SPN1810_LongitudinalAccelerat_m;
23792
23793 /* DataTypeConversion: '<S1015>/Data Type Conversion' incorporates:
23794 * Constant: '<S857>/CANT_STD_ODOMETRY_CHANNEL_APV'
23795 */
23796 L4_MABX_B.DataTypeConversion_o3 = (uint8_T)
23797 L4_MABX_P.CANT_STD_ODOMETRY_CHANNEL_APV_V;
23798
23799 /* S-Function (sfix_bitop): '<S1029>/Operator' */
23800 L4_MABX_B.Operator_op = (uint8_T)(L4_MABX_B.DataTypeConversion_o3 &
23801 L4_MABX_P.Operator_BitMask_ln);
23802
23803 /* DataTypeConversion: '<S1029>/DataType' */
23804 L4_MABX_B.DataType = L4_MABX_B.Operator_op;
23805
23806 /* ArithShift: '<S1015>/Shift_Arithmetic 4' */
23807 L4_MABX_B.Shift_Arithmetic4 = ldexp(L4_MABX_B.DataType, (-5));
23808
23809 /* DataTypeConversion: '<S1015>/Data Type Conversion7' */
23810 L4_MABX_B.DataTypeConversion7_ht = (L4_MABX_B.Shift_Arithmetic4 != 0.0);
23811
23812 /* Outputs for Enabled SubSystem: '<S1030>/Std_OdometryData' incorporates:
23813 * EnablePort: '<S1031>/Enable'
23814 */
23815 if (L4_MABX_B.DataTypeConversion7_ht) {
23816 /* S-Function (rti_commonblock): '<S1031>/S-Function1' */
23817 /* This comment workarounds a code generation problem */
23818
23819 /* dSPACE RTICAN TX Message Block: "Std_OdometryData" Id:10 */
23820 {
23821 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23822
23823 Float32 delayTime = 0.0;
23824
23825 /* ... Read status and timestamp info (previous message) */
23826 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]);
23827
23828 /* Convert timestamp */
23829 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->processed) {
23830 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp =
23831 rtk_dsts_time_to_simtime_convert
23832 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp);
23833 }
23834
23835 /* Messages with timestamp zero have been received in pause/stop state
23836 and must not be handled.
23837 */
23838 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp > 0.0) {
23839 L4_MABX_B.SFunction1_o1_ii = (real_T)
23840 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->processed;
23841 L4_MABX_B.SFunction1_o2_b = (real_T)
23842 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp;
23843 L4_MABX_B.SFunction1_o3_n = (real_T)
23844 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->deltatime;
23845 L4_MABX_B.SFunction1_o4_l = (real_T)
23846 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->delaytime;
23847 }
23848
23849 /* ... Encode Simulink signals of TX and RM blocks*/
23850 {
23851 rtican_Signal_t CAN_Sgn;
23852
23853 /* ...... "SPN904_FrontAxleSpeed" (0|16, standard signal, unsigned int, little endian) */
23854 /* Add or substract 0.5 in order to round to nearest integer */
23855 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_d - ( 0 )
23856 ) / 0.00390625 + 0.5);
23857 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23858 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23859 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
23860
23861 /* ...... "SPN1807_SteeringWheelAngle" (16|16, standard signal, unsigned int, little endian) */
23862 /* Add or substract 0.5 in order to round to nearest integer */
23863 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_h -
23864 ( -31.374 ) ) / 0.0009765625 + 0.5);
23865 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23866 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23867 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
23868
23869 /* ...... "SPN1808_YawRate" (32|16, standard signal, unsigned int, little endian) */
23870 /* Add or substract 0.5 in order to round to nearest integer */
23871 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_mo -
23872 ( -3.92 ) ) / 0.0001220703125 + 0.5);
23873 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23874 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23875 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
23876
23877 /* ...... "SPN1810_LongitudinalAcceleration" (48|8, standard signal, unsigned int, little endian) */
23878 /* Add or substract 0.5 in order to round to nearest integer */
23879 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_g -
23880 ( -12.5 ) ) / 0.1 + 0.5);
23881 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23882 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23883 }
23884
23885 /* mask unused bits with '1' */
23886 CAN_Msg[7] |= 0xFF;
23887
23888 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23889 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA], 8, &(CAN_Msg[0]),
23890 delayTime);
23891 }
23892 }
23893
23894 /* End of Outputs for SubSystem: '<S1030>/Std_OdometryData' */
23895
23896 /* S-Function (sfix_bitop): '<S1024>/Operator' */
23897 L4_MABX_B.Operator_na = (uint8_T)(L4_MABX_B.DataTypeConversion_o3 &
23898 L4_MABX_P.Operator_BitMask_gw);
23899
23900 /* DataTypeConversion: '<S1024>/DataType' */
23901 L4_MABX_B.DataType_d4 = L4_MABX_B.Operator_na;
23902
23903 /* S-Function (sfix_bitop): '<S1025>/Operator' */
23904 L4_MABX_B.Operator_jh = (uint8_T)(L4_MABX_B.DataTypeConversion_o3 &
23905 L4_MABX_P.Operator_BitMask_k4);
23906
23907 /* DataTypeConversion: '<S1025>/DataType' */
23908 L4_MABX_B.DataType_e = L4_MABX_B.Operator_jh;
23909
23910 /* S-Function (sfix_bitop): '<S1026>/Operator' */
23911 L4_MABX_B.Operator_ck = (uint8_T)(L4_MABX_B.DataTypeConversion_o3 &
23912 L4_MABX_P.Operator_BitMask_pl);
23913
23914 /* DataTypeConversion: '<S1026>/DataType' */
23915 L4_MABX_B.DataType_c = L4_MABX_B.Operator_ck;
23916
23917 /* S-Function (sfix_bitop): '<S1027>/Operator' */
23918 L4_MABX_B.Operator_b = (uint8_T)(L4_MABX_B.DataTypeConversion_o3 &
23919 L4_MABX_P.Operator_BitMask_n3);
23920
23921 /* DataTypeConversion: '<S1027>/DataType' */
23922 L4_MABX_B.DataType_k = L4_MABX_B.Operator_b;
23923
23924 /* S-Function (sfix_bitop): '<S1028>/Operator' */
23925 L4_MABX_B.Operator_j2 = (uint8_T)(L4_MABX_B.DataTypeConversion_o3 &
23926 L4_MABX_P.Operator_BitMask_a5);
23927
23928 /* DataTypeConversion: '<S1028>/DataType' */
23929 L4_MABX_B.DataType_ei = L4_MABX_B.Operator_j2;
23930
23931 /* DataTypeConversion: '<S1015>/Data Type Conversion2' */
23932 L4_MABX_B.DataTypeConversion2_cs = (L4_MABX_B.DataType_d4 != 0);
23933
23934 /* ArithShift: '<S1015>/Shift_Arithmetic ' */
23935 L4_MABX_B.Shift_Arithmetic = ldexp(L4_MABX_B.DataType_e, (-1));
23936
23937 /* DataTypeConversion: '<S1015>/Data Type Conversion3' */
23938 L4_MABX_B.DataTypeConversion3_e5 = (L4_MABX_B.Shift_Arithmetic != 0.0);
23939
23940 /* ArithShift: '<S1015>/Shift_Arithmetic 1' */
23941 L4_MABX_B.Shift_Arithmetic1 = ldexp(L4_MABX_B.DataType_c, (-2));
23942
23943 /* DataTypeConversion: '<S1015>/Data Type Conversion4' */
23944 L4_MABX_B.DataTypeConversion4_pw = (L4_MABX_B.Shift_Arithmetic1 != 0.0);
23945
23946 /* ArithShift: '<S1015>/Shift_Arithmetic 2' */
23947 L4_MABX_B.Shift_Arithmetic2 = ldexp(L4_MABX_B.DataType_k, (-3));
23948
23949 /* DataTypeConversion: '<S1015>/Data Type Conversion5' */
23950 L4_MABX_B.DataTypeConversion5_h = (L4_MABX_B.Shift_Arithmetic2 != 0.0);
23951
23952 /* ArithShift: '<S1015>/Shift_Arithmetic 3' */
23953 L4_MABX_B.Shift_Arithmetic3 = ldexp(L4_MABX_B.DataType_ei, (-4));
23954
23955 /* DataTypeConversion: '<S1015>/Data Type Conversion6' */
23956 L4_MABX_B.DataTypeConversion6_l = (L4_MABX_B.Shift_Arithmetic3 != 0.0);
23957
23958 /* RelationalOperator: '<S1038>/Operator' */
23959 L4_MABX_B.Operator_h0 = (L4_MABX_B.Switch1_i == L4_MABX_B.Width_b);
23960
23961 /* Lookup_n-D: '<S1017>/DECEL_GOV_XBR_URGENCY_MPV' */
23962 L4_MABX_B.XBRUrgency = look1_binlcapw(L4_MABX_B.XBRExternalAccelDemand,
23963 L4_MABX_P.DECEL_GOV_XBR_URGENCY_MPV_bp01D,
23964 L4_MABX_P.DECEL_GOV_XBR_URGENCY_MPV_table, 7U);
23965
23966 /* End of Outputs for SubSystem: '<S851>/CAN_TX_20ms' */
23967
23968 /* Outputs for Atomic SubSystem: '<S65>/Task_20ms' */
23969 /* RelationalOperator: '<S397>/CheckHDOP' incorporates:
23970 * Constant: '<S397>/MaximumGoodHDOP'
23971 */
23972 L4_MABX_B.CheckHDOP = (L4_MABX_B.HDOP__f <= L4_MABX_P.MaximumGoodHDOP_Value);
23973
23974 /* Gain: '<S397>/kph2mps' */
23975 L4_MABX_B.kph2mps = L4_MABX_P.kph2mps_Gain_l * L4_MABX_B.FrontAxleSpeed_dv;
23976
23977 /* Product: '<S397>/Product' incorporates:
23978 * Constant: '<S397>/lookAheadTime'
23979 */
23980 L4_MABX_B.Product_c = L4_MABX_B.kph2mps * L4_MABX_P.lookAheadTime_Value;
23981
23982 /* Gain: '<S397>/kph2mps1' */
23983 L4_MABX_B.kph2mps1 = L4_MABX_P.kph2mps1_Gain * L4_MABX_B.FrontAxleSpeed_dvq;
23984
23985 /* Product: '<S397>/Product1' incorporates:
23986 * Constant: '<S397>/lookAheadTime1'
23987 */
23988 L4_MABX_B.Product1_h = L4_MABX_B.kph2mps1 * L4_MABX_P.lookAheadTime1_Value;
23989
23990 /* UnitDelay: '<S397>/Unit Delay1' */
23991 L4_MABX_B.UnitDelay1 = L4_MABX_DW.UnitDelay1_DSTATE;
23992
23993 /* Constant: '<S398>/InitialHeading' */
23994 L4_MABX_B.InitialHeading = L4_MABX_P.InitialHeading_Value;
23995
23996 /* Constant: '<S398>/InitialPosition' */
23997 L4_MABX_B.InitialPosition = L4_MABX_P.InitialPosition_Value;
23998
23999 /* Constant: '<S398>/InitialXPosition' */
24000 L4_MABX_B.InitialXPosition = L4_MABX_P.InitialXPosition_Value;
24001
24002 /* Constant: '<S398>/InitialYPosition' */
24003 L4_MABX_B.InitialYPosition = L4_MABX_P.InitialYPosition_Value;
24004
24005 /* Gain: '<S71>/kph2ms' */
24006 L4_MABX_B.kph2ms = L4_MABX_P.kph2ms_Gain * L4_MABX_B.FrontAxleSpeed_dvqf;
24007
24008 /* DiscreteIntegrator: '<S398>/LongitudnalPosition' incorporates:
24009 * Constant: '<S397>/Constant'
24010 */
24011 if ((L4_MABX_P.Constant_Value_p > 0.0) &&
24012 (L4_MABX_DW.LongitudnalPosition_PrevResetSt <= 0)) {
24013 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_B.InitialPosition;
24014 }
24015
24016 L4_MABX_B.LongitudnalPosition = L4_MABX_P.LongitudnalPosition_gainval *
24017 L4_MABX_B.kph2ms + L4_MABX_DW.LongitudnalPosition_DSTATE;
24018
24019 /* End of DiscreteIntegrator: '<S398>/LongitudnalPosition' */
24020
24021 /* Trigonometry: '<S398>/Trigonometric Function' */
24022 L4_MABX_B.TrigonometricFunction = sin(L4_MABX_B.kph2ms);
24023
24024 /* Trigonometry: '<S398>/Trigonometric Function1' */
24025 L4_MABX_B.TrigonometricFunction1 = cos(L4_MABX_B.kph2ms);
24026
24027 /* DiscreteIntegrator: '<S398>/VehHeading' incorporates:
24028 * Constant: '<S398>/reset'
24029 */
24030 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.VehHeading_PrevResetState <=
24031 0)) {
24032 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_B.InitialHeading;
24033 }
24034
24035 L4_MABX_B.VehHeading = L4_MABX_P.VehHeading_gainval *
24036 L4_MABX_B.TmpRTBAtVehHeadingInport1 + L4_MABX_DW.VehHeading_DSTATE;
24037
24038 /* End of DiscreteIntegrator: '<S398>/VehHeading' */
24039
24040 /* DiscreteIntegrator: '<S398>/XPosition' incorporates:
24041 * Constant: '<S398>/reset'
24042 */
24043 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.XPosition_PrevResetState <= 0))
24044 {
24045 L4_MABX_DW.XPosition_DSTATE = L4_MABX_B.InitialXPosition;
24046 }
24047
24048 L4_MABX_B.XPosition = L4_MABX_P.XPosition_gainval *
24049 L4_MABX_B.TrigonometricFunction1 + L4_MABX_DW.XPosition_DSTATE;
24050
24051 /* End of DiscreteIntegrator: '<S398>/XPosition' */
24052
24053 /* DiscreteIntegrator: '<S398>/YPosition' incorporates:
24054 * Constant: '<S398>/reset'
24055 */
24056 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.YPosition_PrevResetState <= 0))
24057 {
24058 L4_MABX_DW.YPosition_DSTATE = L4_MABX_B.InitialYPosition;
24059 }
24060
24061 L4_MABX_B.YPosition = L4_MABX_P.YPosition_gainval *
24062 L4_MABX_B.TrigonometricFunction + L4_MABX_DW.YPosition_DSTATE;
24063
24064 /* End of DiscreteIntegrator: '<S398>/YPosition' */
24065 /* End of Outputs for SubSystem: '<S65>/Task_20ms' */
24066
24067 /* UnitDelay: '<S3>/Unit_Delay' */
24068 L4_MABX_B.S = L4_MABX_DW.Unit_Delay_49_DSTATE;
24069 L4_MABX_B.B = L4_MABX_DW.Unit_Delay_50_DSTATE;
24070 L4_MABX_B.X = L4_MABX_DW.Unit_Delay_51_DSTATE;
24071 L4_MABX_B.Y = L4_MABX_DW.Unit_Delay_52_DSTATE;
24072 L4_MABX_B.pathCurveOffset = L4_MABX_DW.Unit_Delay_53_DSTATE;
24073 L4_MABX_B.S_b = L4_MABX_DW.Unit_Delay_54_DSTATE;
24074 L4_MABX_B.distanceSpdTarget = L4_MABX_DW.Unit_Delay_55_DSTATE;
24075 L4_MABX_B.state = L4_MABX_DW.Unit_Delay_56_DSTATE;
24076 L4_MABX_B.lastWayPointIdx = L4_MABX_DW.Unit_Delay_57_DSTATE;
24077 L4_MABX_B.crossed = L4_MABX_DW.Unit_Delay_58_DSTATE;
24078 L4_MABX_B.minimumDist = L4_MABX_DW.Unit_Delay_59_DSTATE;
24079 L4_MABX_B.SrefOnthisPath = L4_MABX_DW.Unit_Delay_60_DSTATE;
24080 L4_MABX_B.StartDist = L4_MABX_DW.Unit_Delay_61_DSTATE;
24081 L4_MABX_B.minDistIdx = L4_MABX_DW.Unit_Delay_62_DSTATE;
24082 L4_MABX_B.pathS = L4_MABX_DW.Unit_Delay_63_DSTATE;
24083 L4_MABX_B.pathLat = L4_MABX_DW.Unit_Delay_64_DSTATE;
24084 L4_MABX_B.pathLong = L4_MABX_DW.Unit_Delay_65_DSTATE;
24085 L4_MABX_B.pathSteeringAngle = L4_MABX_DW.Unit_Delay_66_DSTATE;
24086 L4_MABX_B.pathSpdLimit = L4_MABX_DW.Unit_Delay_67_DSTATE;
24087 L4_MABX_B.distance = L4_MABX_DW.Unit_Delay_68_DSTATE;
24088 L4_MABX_B.idx = L4_MABX_DW.Unit_Delay_69_DSTATE;
24089 L4_MABX_B.wpidx = L4_MABX_DW.Unit_Delay_70_DSTATE;
24090 L4_MABX_B.pathOffset = L4_MABX_DW.Unit_Delay_71_DSTATE;
24091 L4_MABX_B.sRefDistance = L4_MABX_DW.Unit_Delay_72_DSTATE;
24092 L4_MABX_B.refDistance = L4_MABX_DW.Unit_Delay_73_DSTATE;
24093 L4_MABX_B.wpIdx = L4_MABX_DW.Unit_Delay_74_DSTATE;
24094 L4_MABX_B.previewSteeringAngle_l = L4_MABX_DW.Unit_Delay_75_DSTATE;
24095 L4_MABX_B.desHeading = L4_MABX_DW.Unit_Delay_76_DSTATE;
24096 L4_MABX_B.actPreviewDist = L4_MABX_DW.Unit_Delay_77_DSTATE;
24097 L4_MABX_B.desPreviewDist = L4_MABX_DW.Unit_Delay_78_DSTATE;
24098 L4_MABX_B.mappingSearchCase = L4_MABX_DW.Unit_Delay_79_DSTATE;
24099
24100 /* user code (Output function Trailer for TID1) */
24101
24102 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
24103 /* EventChannel: 0 */
24104 if (tid == 0) {
24105 DSXCP_service(0);
24106 }
24107
24108 /* If subsystem generates rate grouping Output functions,
24109 * when tid is used in Output function for one rate,
24110 * all Output functions include tid as a local variable.
24111 * As result, some Output functions may have unused tid.
24112 */
24113 UNUSED_PARAMETER(tid);
24114}
24115
24116/* Model update function for TID1 */
24117void L4_MABX_update1(void) /* Sample time: [0.02s, 0.0s] */
24118{
24119 /* Update for Atomic SubSystem: '<S65>/Task_10ms' */
24120 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' incorporates:
24121 * Constant: '<S397>/Constant2'
24122 */
24123 L4_MABX_DW.TmpRTBAtSignalConversion1Inport = L4_MABX_P.Constant2_Value_a;
24124
24125 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' incorporates:
24126 * Constant: '<S397>/Constant13'
24127 */
24128 L4_MABX_DW.TmpRTBAtSignalConversion3Inport = L4_MABX_P.Constant13_Value;
24129
24130 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' incorporates:
24131 * Constant: '<S397>/Constant14'
24132 */
24133 L4_MABX_DW.TmpRTBAtSignalConversion2Inport = L4_MABX_P.Constant14_Value;
24134
24135 /* Update for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' incorporates:
24136 * Constant: '<S397>/Constant17'
24137 */
24138 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0 = L4_MABX_P.Constant17_Value;
24139
24140 /* Update for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' incorporates:
24141 * Constant: '<S397>/Constant1'
24142 */
24143 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_ = L4_MABX_P.Constant1_Value_g;
24144
24145 /* Update for RateTransition: '<S286>/TmpRTBAtAdd2Inport2' incorporates:
24146 * Constant: '<S397>/Constant18'
24147 */
24148 L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0 = L4_MABX_P.Constant18_Value;
24149
24150 /* End of Update for SubSystem: '<S65>/Task_10ms' */
24151
24152 /* Update for Atomic SubSystem: '<S851>/CAN_TX_20ms' */
24153
24154 /* Update for UnitDelay: '<S1013>/Unit_Delay' */
24155 L4_MABX_DW.Unit_Delay_DSTATE_dq = L4_MABX_B.TmpRTBAtUnit_DelayInport1;
24156
24157 /* Update for UnitDelay: '<S1036>/Unit_Delay' */
24158 L4_MABX_DW.Unit_Delay_DSTATE_hh = L4_MABX_B.Operator_h0;
24159
24160 /* Update for UnitDelay: '<S1037>/Unit Delay' */
24161 L4_MABX_DW.UnitDelay_DSTATE_ir = L4_MABX_B.Switch1_i;
24162
24163 /* End of Update for SubSystem: '<S851>/CAN_TX_20ms' */
24164
24165 /* Update for Atomic SubSystem: '<S65>/Task_20ms' */
24166 /* Update for UnitDelay: '<S397>/Unit Delay1' */
24167 L4_MABX_DW.UnitDelay1_DSTATE = L4_MABX_B.LongitudnalPosition;
24168
24169 /* Update for DiscreteIntegrator: '<S398>/LongitudnalPosition' incorporates:
24170 * Constant: '<S397>/Constant'
24171 */
24172 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_P.LongitudnalPosition_gainval *
24173 L4_MABX_B.kph2ms + L4_MABX_B.LongitudnalPosition;
24174 if (L4_MABX_P.Constant_Value_p > 0.0) {
24175 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 1;
24176 } else if (L4_MABX_P.Constant_Value_p < 0.0) {
24177 L4_MABX_DW.LongitudnalPosition_PrevResetSt = -1;
24178 } else if (L4_MABX_P.Constant_Value_p == 0.0) {
24179 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 0;
24180 } else {
24181 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 2;
24182 }
24183
24184 /* End of Update for DiscreteIntegrator: '<S398>/LongitudnalPosition' */
24185
24186 /* Update for DiscreteIntegrator: '<S398>/VehHeading' incorporates:
24187 * Constant: '<S398>/reset'
24188 * DiscreteIntegrator: '<S398>/XPosition'
24189 */
24190 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_P.VehHeading_gainval *
24191 L4_MABX_B.TmpRTBAtVehHeadingInport1 + L4_MABX_B.VehHeading;
24192 if (L4_MABX_P.reset_Value > 0.0) {
24193 L4_MABX_DW.VehHeading_PrevResetState = 1;
24194 L4_MABX_DW.XPosition_PrevResetState = 1;
24195 } else {
24196 if (L4_MABX_P.reset_Value < 0.0) {
24197 L4_MABX_DW.VehHeading_PrevResetState = -1;
24198 } else if (L4_MABX_P.reset_Value == 0.0) {
24199 L4_MABX_DW.VehHeading_PrevResetState = 0;
24200 } else {
24201 L4_MABX_DW.VehHeading_PrevResetState = 2;
24202 }
24203
24204 if (L4_MABX_P.reset_Value < 0.0) {
24205 L4_MABX_DW.XPosition_PrevResetState = -1;
24206 } else if (L4_MABX_P.reset_Value == 0.0) {
24207 L4_MABX_DW.XPosition_PrevResetState = 0;
24208 } else {
24209 L4_MABX_DW.XPosition_PrevResetState = 2;
24210 }
24211 }
24212
24213 /* End of Update for DiscreteIntegrator: '<S398>/VehHeading' */
24214
24215 /* Update for DiscreteIntegrator: '<S398>/XPosition' */
24216 L4_MABX_DW.XPosition_DSTATE = L4_MABX_P.XPosition_gainval *
24217 L4_MABX_B.TrigonometricFunction1 + L4_MABX_B.XPosition;
24218
24219 /* Update for DiscreteIntegrator: '<S398>/YPosition' incorporates:
24220 * Constant: '<S398>/reset'
24221 */
24222 L4_MABX_DW.YPosition_DSTATE = L4_MABX_P.YPosition_gainval *
24223 L4_MABX_B.TrigonometricFunction + L4_MABX_B.YPosition;
24224 if (L4_MABX_P.reset_Value > 0.0) {
24225 L4_MABX_DW.YPosition_PrevResetState = 1;
24226 } else if (L4_MABX_P.reset_Value < 0.0) {
24227 L4_MABX_DW.YPosition_PrevResetState = -1;
24228 } else if (L4_MABX_P.reset_Value == 0.0) {
24229 L4_MABX_DW.YPosition_PrevResetState = 0;
24230 } else {
24231 L4_MABX_DW.YPosition_PrevResetState = 2;
24232 }
24233
24234 /* End of Update for DiscreteIntegrator: '<S398>/YPosition' */
24235 /* End of Update for SubSystem: '<S65>/Task_20ms' */
24236
24237 /* Update for UnitDelay: '<S3>/Unit_Delay' incorporates:
24238 * Constant: '<S397>/Constant1'
24239 * Constant: '<S397>/Constant10'
24240 * Constant: '<S397>/Constant11'
24241 * Constant: '<S397>/Constant12'
24242 * Constant: '<S397>/Constant13'
24243 * Constant: '<S397>/Constant14'
24244 * Constant: '<S397>/Constant15'
24245 * Constant: '<S397>/Constant16'
24246 * Constant: '<S397>/Constant17'
24247 * Constant: '<S397>/Constant18'
24248 * Constant: '<S397>/Constant19'
24249 * Constant: '<S397>/Constant2'
24250 * Constant: '<S397>/Constant20'
24251 * Constant: '<S397>/Constant21'
24252 * Constant: '<S397>/Constant22'
24253 * Constant: '<S397>/Constant23'
24254 * Constant: '<S397>/Constant24'
24255 * Constant: '<S397>/Constant25'
24256 * Constant: '<S397>/Constant3'
24257 * Constant: '<S397>/Constant4'
24258 * Constant: '<S397>/Constant5'
24259 * Constant: '<S397>/Constant6'
24260 * Constant: '<S397>/Constant7'
24261 * Constant: '<S397>/Constant8'
24262 * Constant: '<S397>/Constant9'
24263 */
24264 L4_MABX_DW.Unit_Delay_49_DSTATE = L4_MABX_B.LongitudnalPosition;
24265 L4_MABX_DW.Unit_Delay_50_DSTATE = L4_MABX_B.VehHeading;
24266 L4_MABX_DW.Unit_Delay_51_DSTATE = L4_MABX_B.XPosition;
24267 L4_MABX_DW.Unit_Delay_52_DSTATE = L4_MABX_B.YPosition;
24268 L4_MABX_DW.Unit_Delay_53_DSTATE = L4_MABX_P.Constant1_Value_g;
24269 L4_MABX_DW.Unit_Delay_54_DSTATE = L4_MABX_B.UnitDelay1;
24270 L4_MABX_DW.Unit_Delay_55_DSTATE = L4_MABX_P.Constant2_Value_a;
24271 L4_MABX_DW.Unit_Delay_56_DSTATE = L4_MABX_P.Constant3_Value_l;
24272 L4_MABX_DW.Unit_Delay_57_DSTATE = L4_MABX_P.Constant4_Value_m;
24273 L4_MABX_DW.Unit_Delay_58_DSTATE = L4_MABX_P.Constant5_Value_b;
24274 L4_MABX_DW.Unit_Delay_59_DSTATE = L4_MABX_P.Constant10_Value_h;
24275 L4_MABX_DW.Unit_Delay_60_DSTATE = L4_MABX_P.Constant25_Value;
24276 L4_MABX_DW.Unit_Delay_61_DSTATE = L4_MABX_P.Constant6_Value_e;
24277 L4_MABX_DW.Unit_Delay_62_DSTATE = L4_MABX_P.Constant7_Value;
24278 L4_MABX_DW.Unit_Delay_63_DSTATE = L4_MABX_P.Constant8_Value;
24279 L4_MABX_DW.Unit_Delay_64_DSTATE = L4_MABX_P.Constant9_Value_m;
24280 L4_MABX_DW.Unit_Delay_65_DSTATE = L4_MABX_P.Constant11_Value;
24281 L4_MABX_DW.Unit_Delay_66_DSTATE = L4_MABX_P.Constant12_Value;
24282 L4_MABX_DW.Unit_Delay_67_DSTATE = L4_MABX_P.Constant13_Value;
24283 L4_MABX_DW.Unit_Delay_68_DSTATE = L4_MABX_P.Constant14_Value;
24284 L4_MABX_DW.Unit_Delay_69_DSTATE = L4_MABX_P.Constant19_Value_m;
24285 L4_MABX_DW.Unit_Delay_70_DSTATE = L4_MABX_P.Constant16_Value;
24286 L4_MABX_DW.Unit_Delay_71_DSTATE = L4_MABX_P.Constant21_Value_g;
24287 L4_MABX_DW.Unit_Delay_72_DSTATE = L4_MABX_P.Constant22_Value;
24288 L4_MABX_DW.Unit_Delay_73_DSTATE = L4_MABX_P.Constant15_Value;
24289 L4_MABX_DW.Unit_Delay_74_DSTATE = L4_MABX_P.Constant20_Value_i;
24290 L4_MABX_DW.Unit_Delay_75_DSTATE = L4_MABX_P.Constant17_Value;
24291 L4_MABX_DW.Unit_Delay_76_DSTATE = L4_MABX_P.Constant18_Value;
24292 L4_MABX_DW.Unit_Delay_77_DSTATE = L4_MABX_P.Constant23_Value;
24293 L4_MABX_DW.Unit_Delay_78_DSTATE = L4_MABX_B.Product_c;
24294 L4_MABX_DW.Unit_Delay_79_DSTATE = L4_MABX_P.Constant24_Value;
24295}
24296
24297/* Model output function for TID2 */
24298void L4_MABX_output2(void) /* Sample time: [0.05s, 0.0s] */
24299{
24300 int_T tid = 2;
24301
24302 /* Outputs for Atomic SubSystem: '<S851>/CAN_TX_50ms' */
24303
24304 /* Outputs for Enabled SubSystem: '<S1056>/CCVS1_E3' incorporates:
24305 * EnablePort: '<S1058>/Enable'
24306 */
24307 /* Constant: '<S860>/enable_CAN_TX_CCVS1_CAN3' */
24308 if (L4_MABX_P.enable_CAN_TX_CCVS1_CAN3_Value > 0.0) {
24309 /* S-Function (rti_commonblock): '<S1058>/S-Function1' */
24310 /* This comment workarounds a code generation problem */
24311
24312 /* dSPACE RTICAN TX Message Block: "CCVS1_E3" Id:419361251 */
24313 {
24314 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24315
24316 Float32 delayTime = 0.0;
24317
24318 /* ... Read status and timestamp info (previous message) */
24319 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]);
24320
24321 /* Convert timestamp */
24322 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->processed) {
24323 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp =
24324 rtk_dsts_time_to_simtime_convert
24325 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp);
24326 }
24327
24328 /* Messages with timestamp zero have been received in pause/stop state
24329 and must not be handled.
24330 */
24331 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp > 0.0) {
24332 L4_MABX_B.SFunction1_o1_i = (real_T)
24333 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->processed;
24334 L4_MABX_B.SFunction1_o2_iq = (real_T)
24335 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp;
24336 L4_MABX_B.SFunction1_o3_h = (real_T)
24337 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->deltatime;
24338 L4_MABX_B.SFunction1_o4_p = (real_T)
24339 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->delaytime;
24340 }
24341
24342 /* ... Encode Simulink signals of TX and RM blocks*/
24343 {
24344 rtican_Signal_t CAN_Sgn;
24345
24346 /* ...... "SPN69_TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
24347 /* Add or substract 0.5 in order to round to nearest integer */
24348 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch ) + 0.5);
24349 CAN_Sgn.UnsignedSgn &= 0x00000003;
24350 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24351
24352 /* ...... "SPN70_ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
24353 /* Add or substract 0.5 in order to round to nearest integer */
24354 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch ) + 0.5);
24355 CAN_Sgn.UnsignedSgn &= 0x00000003;
24356 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24357 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24358
24359 /* ...... "SPN1633_CruiseControlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
24360 /* Add or substract 0.5 in order to round to nearest integer */
24361 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch ) +
24362 0.5);
24363 CAN_Sgn.UnsignedSgn &= 0x00000003;
24364 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24365 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24366
24367 /* ...... "SPN3807_ParkBrakeReleaseInhReq" (6|2, standard signal, unsigned int, little endian) */
24368 /* Add or substract 0.5 in order to round to nearest integer */
24369 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq )
24370 + 0.5);
24371 CAN_Sgn.UnsignedSgn &= 0x00000003;
24372 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24373 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24374
24375 /* ...... "SPN84_WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
24376 /* Add or substract 0.5 in order to round to nearest integer */
24377 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_l - (
24378 0 ) ) / 0.00390625 + 0.5);
24379 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
24380 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24381 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
24382
24383 /* ...... "SPN595_CruiseControlActive" (24|2, standard signal, unsigned int, little endian) */
24384 /* Add or substract 0.5 in order to round to nearest integer */
24385 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive ) + 0.5);
24386 CAN_Sgn.UnsignedSgn &= 0x00000003;
24387 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24388
24389 /* ...... "SPN596_CruiseControlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
24390 /* Add or substract 0.5 in order to round to nearest integer */
24391 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_e ) +
24392 0.5);
24393 CAN_Sgn.UnsignedSgn &= 0x00000003;
24394 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24395 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24396
24397 /* ...... "SPN597_BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
24398 /* Add or substract 0.5 in order to round to nearest integer */
24399 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_i ) + 0.5);
24400 CAN_Sgn.UnsignedSgn &= 0x00000003;
24401 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24402 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24403
24404 /* ...... "SPN598_ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
24405 /* Add or substract 0.5 in order to round to nearest integer */
24406 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch ) + 0.5);
24407 CAN_Sgn.UnsignedSgn &= 0x00000003;
24408 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24409 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24410
24411 /* ...... "SPN599_CruiseControlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
24412 /* Add or substract 0.5 in order to round to nearest integer */
24413 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch ) + 0.5);
24414 CAN_Sgn.UnsignedSgn &= 0x00000003;
24415 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24416
24417 /* ...... "SPN600_CruiseControlCoastDecelSw" (34|2, standard signal, unsigned int, little endian) */
24418 /* Add or substract 0.5 in order to round to nearest integer */
24419 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch ) +
24420 0.5);
24421 CAN_Sgn.UnsignedSgn &= 0x00000003;
24422 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24423 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24424
24425 /* ...... "SPN601_CruiseControlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
24426 /* Add or substract 0.5 in order to round to nearest integer */
24427 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch ) +
24428 0.5);
24429 CAN_Sgn.UnsignedSgn &= 0x00000003;
24430 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24431 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24432
24433 /* ...... "SPN602_CruiseControlAccelerateSw" (38|2, standard signal, unsigned int, little endian) */
24434 /* Add or substract 0.5 in order to round to nearest integer */
24435 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlAccelerateSwitch )
24436 + 0.5);
24437 CAN_Sgn.UnsignedSgn &= 0x00000003;
24438 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24439 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24440
24441 /* ...... "SPN86_CruiseControlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
24442 /* Add or substract 0.5 in order to round to nearest integer */
24443 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed ) + 0.5);
24444 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24445 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24446
24447 /* ...... "SPN976_PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
24448 /* Add or substract 0.5 in order to round to nearest integer */
24449 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState ) + 0.5);
24450 CAN_Sgn.UnsignedSgn &= 0x0000001F;
24451 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24452
24453 /* ...... "SPN527_CruiseControlStates" (53|3, standard signal, unsigned int, little endian) */
24454 /* Add or substract 0.5 in order to round to nearest integer */
24455 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates ) + 0.5);
24456 CAN_Sgn.UnsignedSgn &= 0x00000007;
24457 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
24458 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24459
24460 /* ...... "SPN968_EngIdleIncrementSw" (56|2, standard signal, unsigned int, little endian) */
24461 /* Add or substract 0.5 in order to round to nearest integer */
24462 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch ) +
24463 0.5);
24464 CAN_Sgn.UnsignedSgn &= 0x00000003;
24465 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24466
24467 /* ...... "SPN967_EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
24468 /* Add or substract 0.5 in order to round to nearest integer */
24469 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch ) +
24470 0.5);
24471 CAN_Sgn.UnsignedSgn &= 0x00000003;
24472 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24473 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24474
24475 /* ...... "SPN966_EngDiagTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
24476 /* Add or substract 0.5 in order to round to nearest integer */
24477 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch ) + 0.5);
24478 CAN_Sgn.UnsignedSgn &= 0x00000003;
24479 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24480 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24481
24482 /* ...... "SPN1237_EngShutdownOvrdSwitch" (62|2, standard signal, unsigned int, little endian) */
24483 /* Add or substract 0.5 in order to round to nearest integer */
24484 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch )
24485 + 0.5);
24486 CAN_Sgn.UnsignedSgn &= 0x00000003;
24487 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24488 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24489 }
24490
24491 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24492 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3], 8,
24493 &(CAN_Msg[0]), delayTime);
24494 }
24495 }
24496
24497 /* End of Constant: '<S860>/enable_CAN_TX_CCVS1_CAN3' */
24498 /* End of Outputs for SubSystem: '<S1056>/CCVS1_E3' */
24499
24500 /* Outputs for Enabled SubSystem: '<S1057>/TC1_03_05' incorporates:
24501 * EnablePort: '<S1059>/Enable'
24502 */
24503 /* Constant: '<S1057>/CANT_TC1_03_05_APV' */
24504 if (L4_MABX_P.CANT_TC1_03_05_APV_Value) {
24505 /* S-Function (rti_commonblock): '<S1059>/S-Function1' */
24506 /* This comment workarounds a code generation problem */
24507
24508 /* dSPACE RTICAN TX Message Block: "TC1_03_05" Id:201392901 */
24509 {
24510 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24511
24512 Float32 delayTime = 0.0;
24513
24514 /* ... Read status and timestamp info (previous message) */
24515 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]);
24516
24517 /* Convert timestamp */
24518 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->processed) {
24519 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp =
24520 rtk_dsts_time_to_simtime_convert
24521 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp);
24522 }
24523
24524 /* Messages with timestamp zero have been received in pause/stop state
24525 and must not be handled.
24526 */
24527 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp > 0.0) {
24528 L4_MABX_B.SFunction1_o1_k0 = (real_T)
24529 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->processed;
24530 L4_MABX_B.SFunction1_o2_hu = (real_T)
24531 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp;
24532 L4_MABX_B.SFunction1_o3_l = (real_T)
24533 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->deltatime;
24534 L4_MABX_B.SFunction1_o4_al = (real_T)
24535 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->delaytime;
24536 }
24537
24538 /* ... Encode Simulink signals of TX and RM blocks*/
24539 {
24540 rtican_Signal_t CAN_Sgn;
24541
24542 /* ...... "SPN681_TransGearShiftInhibitReq" (0|2, standard signal, unsigned int, little endian) */
24543 /* Add or substract 0.5 in order to round to nearest integer */
24544 CAN_Sgn.UnsignedSgn = (UInt32)
24545 (( L4_MABX_B.SPN681_TransGearShiftInhibitReq ) + 0.5);
24546 CAN_Sgn.UnsignedSgn &= 0x00000003;
24547 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24548
24549 /* ...... "SPN682_TransTrqConvLockupDisReq" (2|2, standard signal, unsigned int, little endian) */
24550 /* Add or substract 0.5 in order to round to nearest integer */
24551 CAN_Sgn.UnsignedSgn = (UInt32)
24552 (( L4_MABX_B.SPN682_TransTrqConvLockupDisReq ) + 0.5);
24553 CAN_Sgn.UnsignedSgn &= 0x00000003;
24554 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24555 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24556
24557 /* ...... "SPN683_DisengageDrivelineReq" (4|2, standard signal, unsigned int, little endian) */
24558 /* Add or substract 0.5 in order to round to nearest integer */
24559 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN683_DisengageDrivelineReq
24560 ) + 0.5);
24561 CAN_Sgn.UnsignedSgn &= 0x00000003;
24562 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24563 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24564
24565 /* ...... "SPN4242_TransRevGearShiftInhibRq" (6|2, standard signal, unsigned int, little endian) */
24566 /* Add or substract 0.5 in order to round to nearest integer */
24567 CAN_Sgn.UnsignedSgn = (UInt32)
24568 (( L4_MABX_B.SPN4242_TransRevGearShiftInhibR ) + 0.5);
24569 CAN_Sgn.UnsignedSgn &= 0x00000003;
24570 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24571 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24572
24573 /* ...... "SPN684_RequestedPercClutchSlip" (8|8, standard signal, unsigned int, little endian) */
24574 /* Add or substract 0.5 in order to round to nearest integer */
24575 CAN_Sgn.UnsignedSgn = (UInt32)
24576 (( L4_MABX_B.SPN684_RequestedPercClutchSlip - ( 0 ) ) / 0.4 + 0.5);
24577 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24578 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24579
24580 /* ...... "SPN525_TransRequestedGear" (16|8, standard signal, unsigned int, little endian) */
24581 /* Add or substract 0.5 in order to round to nearest integer */
24582 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.SPN525_TransRequestedGear - (
24583 -125 ) + 0.5);
24584 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24585 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
24586
24587 /* ...... "SPN685_DisengageDiffLockRqFrAx1" (24|2, standard signal, unsigned int, little endian) */
24588 /* Add or substract 0.5 in order to round to nearest integer */
24589 CAN_Sgn.UnsignedSgn = (UInt32)
24590 (( L4_MABX_B.SPN685_DisengageDiffLockRqFrAx1 ) + 0.5);
24591 CAN_Sgn.UnsignedSgn &= 0x00000003;
24592 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24593
24594 /* ...... "SPN686_DisengageDiffLockRqFrAx2" (26|2, standard signal, unsigned int, little endian) */
24595 /* Add or substract 0.5 in order to round to nearest integer */
24596 CAN_Sgn.UnsignedSgn = (UInt32)
24597 (( L4_MABX_B.SPN686_DisengageDiffLockRqFrAx2 ) + 0.5);
24598 CAN_Sgn.UnsignedSgn &= 0x00000003;
24599 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24600 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24601
24602 /* ...... "SPN687_DisengageDiffLockRqRrAx1" (28|2, standard signal, unsigned int, little endian) */
24603 /* Add or substract 0.5 in order to round to nearest integer */
24604 CAN_Sgn.UnsignedSgn = (UInt32)
24605 (( L4_MABX_B.SPN687_DisengageDiffLockRqRrAx1 ) + 0.5);
24606 CAN_Sgn.UnsignedSgn &= 0x00000003;
24607 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24608 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24609
24610 /* ...... "SPN688_DisengageDiffLockRqRrAx2" (30|2, standard signal, unsigned int, little endian) */
24611 /* Add or substract 0.5 in order to round to nearest integer */
24612 CAN_Sgn.UnsignedSgn = (UInt32)
24613 (( L4_MABX_B.SPN688_DisengageDiffLockRqRrAx2 ) + 0.5);
24614 CAN_Sgn.UnsignedSgn &= 0x00000003;
24615 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24616 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24617
24618 /* ...... "SPN689_DisengageDiffLockRqC" (32|2, standard signal, unsigned int, little endian) */
24619 /* Add or substract 0.5 in order to round to nearest integer */
24620 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN689_DisengageDiffLockRqC )
24621 + 0.5);
24622 CAN_Sgn.UnsignedSgn &= 0x00000003;
24623 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24624
24625 /* ...... "SPN690_DisengageDiffLockRqCF" (34|2, standard signal, unsigned int, little endian) */
24626 /* Add or substract 0.5 in order to round to nearest integer */
24627 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN690_DisengageDiffLockRqCF
24628 ) + 0.5);
24629 CAN_Sgn.UnsignedSgn &= 0x00000003;
24630 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24631 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24632
24633 /* ...... "SPN691_DisengageDiffLockRqCR" (36|2, standard signal, unsigned int, little endian) */
24634 /* Add or substract 0.5 in order to round to nearest integer */
24635 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN691_DisengageDiffLockRqCR
24636 ) + 0.5);
24637 CAN_Sgn.UnsignedSgn &= 0x00000003;
24638 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24639 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24640
24641 /* ...... "SPN5762_TransLoadRedInhibitRq" (38|2, standard signal, unsigned int, little endian) */
24642 /* Add or substract 0.5 in order to round to nearest integer */
24643 CAN_Sgn.UnsignedSgn = (UInt32)
24644 (( L4_MABX_B.SPN5762_TransLoadRedInhibitRq ) + 0.5);
24645 CAN_Sgn.UnsignedSgn &= 0x00000003;
24646 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24647 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24648
24649 /* ...... "SPN1852_TransmissionMode1" (40|2, standard signal, unsigned int, little endian) */
24650 /* Add or substract 0.5 in order to round to nearest integer */
24651 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1852_TransmissionMode1 )
24652 + 0.5);
24653 CAN_Sgn.UnsignedSgn &= 0x00000003;
24654 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24655
24656 /* ...... "SPN1853_TransmissionMode2" (42|2, standard signal, unsigned int, little endian) */
24657 /* Add or substract 0.5 in order to round to nearest integer */
24658 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1853_TransmissionMode2 )
24659 + 0.5);
24660 CAN_Sgn.UnsignedSgn &= 0x00000003;
24661 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24662 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24663
24664 /* ...... "SPN1854_TransmissionMode3" (44|2, standard signal, unsigned int, little endian) */
24665 /* Add or substract 0.5 in order to round to nearest integer */
24666 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1854_TransmissionMode3 )
24667 + 0.5);
24668 CAN_Sgn.UnsignedSgn &= 0x00000003;
24669 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24670 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24671
24672 /* ...... "SPN1855_TransmissionMode4" (46|2, standard signal, unsigned int, little endian) */
24673 /* Add or substract 0.5 in order to round to nearest integer */
24674 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1855_TransmissionMode4 )
24675 + 0.5);
24676 CAN_Sgn.UnsignedSgn &= 0x00000003;
24677 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24678 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24679
24680 /* ...... "SPN7695_TransAutoNeutralRequest" (48|2, standard signal, unsigned int, little endian) */
24681 /* Add or substract 0.5 in order to round to nearest integer */
24682 CAN_Sgn.UnsignedSgn = (UInt32)
24683 (( L4_MABX_B.SPN7695_TransAutoNeutralRequest ) + 0.5);
24684 CAN_Sgn.UnsignedSgn &= 0x00000003;
24685 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24686
24687 /* ...... "SPN4255_TransRequestedLaunchGear" (50|4, standard signal, unsigned int, little endian) */
24688 /* Add or substract 0.5 in order to round to nearest integer */
24689 CAN_Sgn.UnsignedSgn = (UInt32)
24690 (( L4_MABX_B.SPN4255_TransRequestedLaunchGea ) + 0.5);
24691 CAN_Sgn.UnsignedSgn &= 0x0000000F;
24692 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24693 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24694
24695 /* ...... "SPN2985_TransShiftSelDispModeSw" (54|2, standard signal, unsigned int, little endian) */
24696 /* Add or substract 0.5 in order to round to nearest integer */
24697 CAN_Sgn.UnsignedSgn = (UInt32)
24698 (( L4_MABX_B.SPN2985_TransShiftSelDispModeSw ) + 0.5);
24699 CAN_Sgn.UnsignedSgn &= 0x00000003;
24700 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24701 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24702
24703 /* ...... "SPN4246_TransmissionMode5" (56|2, standard signal, unsigned int, little endian) */
24704 /* Add or substract 0.5 in order to round to nearest integer */
24705 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4246_TransmissionMode5 )
24706 + 0.5);
24707 CAN_Sgn.UnsignedSgn &= 0x00000003;
24708 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24709
24710 /* ...... "SPN4247_TransmissionMode6" (58|2, standard signal, unsigned int, little endian) */
24711 /* Add or substract 0.5 in order to round to nearest integer */
24712 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4247_TransmissionMode6 )
24713 + 0.5);
24714 CAN_Sgn.UnsignedSgn &= 0x00000003;
24715 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24716 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24717
24718 /* ...... "SPN4248_TransmissionMode7" (60|2, standard signal, unsigned int, little endian) */
24719 /* Add or substract 0.5 in order to round to nearest integer */
24720 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4248_TransmissionMode7 )
24721 + 0.5);
24722 CAN_Sgn.UnsignedSgn &= 0x00000003;
24723 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24724 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24725
24726 /* ...... "SPN4249_TransmissionMode8" (62|2, standard signal, unsigned int, little endian) */
24727 /* Add or substract 0.5 in order to round to nearest integer */
24728 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4249_TransmissionMode8 )
24729 + 0.5);
24730 CAN_Sgn.UnsignedSgn &= 0x00000003;
24731 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24732 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24733 }
24734
24735 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24736 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305], 8,
24737 &(CAN_Msg[0]), delayTime);
24738 }
24739 }
24740
24741 /* End of Constant: '<S1057>/CANT_TC1_03_05_APV' */
24742 /* End of Outputs for SubSystem: '<S1057>/TC1_03_05' */
24743
24744 /* End of Outputs for SubSystem: '<S851>/CAN_TX_50ms' */
24745 /* user code (Output function Trailer for TID2) */
24746
24747 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
24748 /* EventChannel: 0 */
24749 if (tid == 0) {
24750 DSXCP_service(0);
24751 }
24752
24753 /* If subsystem generates rate grouping Output functions,
24754 * when tid is used in Output function for one rate,
24755 * all Output functions include tid as a local variable.
24756 * As result, some Output functions may have unused tid.
24757 */
24758 UNUSED_PARAMETER(tid);
24759}
24760
24761/* Model update function for TID2 */
24762void L4_MABX_update2(void) /* Sample time: [0.05s, 0.0s] */
24763{
24764 /* (no update code required) */
24765}
24766
24767/* Model output function for TID3 */
24768void L4_MABX_output3(void) /* Sample time: [0.1s, 0.0s] */
24769{
24770 int_T tid = 3;
24771 uint16_T tmp;
24772 uint32_T tmp_0;
24773 uint8_T tmp_1;
24774 real_T tmp_2;
24775
24776 /* Outputs for Atomic SubSystem: '<S851>/CAN_TX_100ms' */
24777
24778 /* DataTypeConversion: '<S888>/Data Type Conversion' incorporates:
24779 * Constant: '<S855>/PROPB_XPR_INHIBIT_PARK_MANUAL_APV'
24780 */
24781 L4_MABX_B.DataTypeConversion_kf = (uint8_T)
24782 L4_MABX_P.PROPB_XPR_INHIBIT_PARK_MANUAL_A;
24783
24784 /* S-Function (sfix_bitop): '<S920>/Operator' */
24785 L4_MABX_B.Operator_e0 = (uint8_T)(L4_MABX_B.DataTypeConversion_kf &
24786 L4_MABX_P.Operator_BitMask_h);
24787
24788 /* DataTypeConversion: '<S920>/DataType' */
24789 L4_MABX_B.DataType_nbp = L4_MABX_B.Operator_e0;
24790
24791 /* DataTypeConversion: '<S888>/Data Type Conversion2' incorporates:
24792 * Constant: '<S855>/PROPB_XPR_INHIBIT_UNPARK_MANUAL_APV'
24793 */
24794 L4_MABX_B.DataTypeConversion2_gs = (uint8_T)
24795 L4_MABX_P.PROPB_XPR_INHIBIT_UNPARK_MANUAL;
24796
24797 /* S-Function (sfix_bitop): '<S922>/Operator' */
24798 L4_MABX_B.Operator_ep = (uint8_T)(L4_MABX_B.DataTypeConversion2_gs &
24799 L4_MABX_P.Operator_BitMask_p);
24800
24801 /* DataTypeConversion: '<S922>/DataType' */
24802 L4_MABX_B.DataType_oi = L4_MABX_B.Operator_ep;
24803
24804 /* ArithShift: '<S888>/Shift_Arithmetic ' */
24805 L4_MABX_B.Shift_Arithmetic_h = (uint8_T)(L4_MABX_B.DataType_oi << 2);
24806
24807 /* DataTypeConversion: '<S888>/Data Type Conversion4' incorporates:
24808 * Constant: '<S855>/PROPB_XPR_PARK_MANUAL_APV'
24809 */
24810 L4_MABX_B.DataTypeConversion4_ga = (uint8_T)
24811 L4_MABX_P.PROPB_XPR_PARK_MANUAL_APV_Value;
24812
24813 /* S-Function (sfix_bitop): '<S923>/Operator' */
24814 L4_MABX_B.Operator_n4 = (uint8_T)(L4_MABX_B.DataTypeConversion4_ga &
24815 L4_MABX_P.Operator_BitMask_g);
24816
24817 /* DataTypeConversion: '<S923>/DataType' */
24818 L4_MABX_B.DataType_aa = L4_MABX_B.Operator_n4;
24819
24820 /* ArithShift: '<S888>/Shift_Arithmetic 1' */
24821 L4_MABX_B.Shift_Arithmetic1_j = (uint8_T)(L4_MABX_B.DataType_aa << 4);
24822
24823 /* DataTypeConversion: '<S888>/Data Type Conversion5' incorporates:
24824 * Constant: '<S855>/PROPB_XPR_UNPARK_MANUAL_APV'
24825 */
24826 L4_MABX_B.DataTypeConversion5_lo = (uint8_T)
24827 L4_MABX_P.PROPB_XPR_UNPARK_MANUAL_APV_Val;
24828
24829 /* S-Function (sfix_bitop): '<S921>/Operator' */
24830 L4_MABX_B.Operator_dd = (uint8_T)(L4_MABX_B.DataTypeConversion5_lo &
24831 L4_MABX_P.Operator_BitMask_ap);
24832
24833 /* DataTypeConversion: '<S921>/DataType' */
24834 L4_MABX_B.DataType_ik = L4_MABX_B.Operator_dd;
24835
24836 /* ArithShift: '<S888>/Shift_Arithmetic 2' */
24837 L4_MABX_B.Shift_Arithmetic2_nu = (uint8_T)(L4_MABX_B.DataType_ik << 6);
24838
24839 /* S-Function (sfix_bitop): '<S928>/Operator' */
24840 L4_MABX_B.Operator_e2 = (uint8_T)(L4_MABX_B.DataType_nbp |
24841 L4_MABX_B.Shift_Arithmetic_h | L4_MABX_B.Shift_Arithmetic1_j |
24842 L4_MABX_B.Shift_Arithmetic2_nu);
24843
24844 /* DataTypeConversion: '<S928>/DataType' */
24845 L4_MABX_B.DataType_ohu = L4_MABX_B.Operator_e2;
24846
24847 /* Outputs for Enabled SubSystem: '<S888>/Rolling_15_counter' incorporates:
24848 * EnablePort: '<S930>/Enable'
24849 */
24850 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R) {
24851 /* UnitDelay: '<S930>/Unit_Delay' */
24852 L4_MABX_B.Unit_Delay = L4_MABX_DW.Unit_Delay_DSTATE;
24853
24854 /* Sum: '<S938>/FixPt Sum1' incorporates:
24855 * Constant: '<S938>/FixPt Constant'
24856 */
24857 L4_MABX_B.FixPtSum1_n = L4_MABX_B.Unit_Delay + L4_MABX_P.FixPtConstant_Value;
24858
24859 /* Switch: '<S939>/FixPt Switch' incorporates:
24860 * Constant: '<S939>/Constant'
24861 */
24862 if (L4_MABX_B.FixPtSum1_n > L4_MABX_P.WrapToZero1_Threshold) {
24863 L4_MABX_B.FixPtSwitch = L4_MABX_P.Constant_Value_hy;
24864 } else {
24865 L4_MABX_B.FixPtSwitch = L4_MABX_B.FixPtSum1_n;
24866 }
24867
24868 /* End of Switch: '<S939>/FixPt Switch' */
24869 }
24870
24871 /* End of Outputs for SubSystem: '<S888>/Rolling_15_counter' */
24872
24873 /* DataTypeConversion: '<S888>/Data Type Conversion1' */
24874 tmp_2 = L4_MABX_B.Unit_Delay;
24875 if (tmp_2 < 256.0) {
24876 if (tmp_2 >= 0.0) {
24877 tmp_1 = (uint8_T)tmp_2;
24878 } else {
24879 tmp_1 = 0U;
24880 }
24881 } else {
24882 tmp_1 = MAX_uint8_T;
24883 }
24884
24885 L4_MABX_B.DataTypeConversion1_po = tmp_1;
24886
24887 /* End of DataTypeConversion: '<S888>/Data Type Conversion1' */
24888
24889 /* S-Function (sfix_bitop): '<S924>/Operator' */
24890 L4_MABX_B.Operator_iq = (uint8_T)(L4_MABX_B.DataTypeConversion1_po &
24891 L4_MABX_P.Operator_BitMask_dj);
24892
24893 /* DataTypeConversion: '<S924>/DataType' */
24894 L4_MABX_B.DataType_hw = L4_MABX_B.Operator_iq;
24895
24896 /* DataTypeConversion: '<S927>/Data Type Conversion' incorporates:
24897 * Constant: '<S927>/Priority'
24898 */
24899 L4_MABX_B.DataTypeConversion_ay = L4_MABX_P.Priority_Value;
24900
24901 /* ArithShift: '<S927>/Shift_Arithmetic ' */
24902 L4_MABX_B.Shift_Arithmetic_l = L4_MABX_B.DataTypeConversion_ay << 26;
24903
24904 /* DataTypeConversion: '<S927>/Data Type Conversion1' incorporates:
24905 * Constant: '<S927>/ExtendedDataPage'
24906 */
24907 L4_MABX_B.DataTypeConversion1_pp = L4_MABX_P.ExtendedDataPage_Value;
24908
24909 /* ArithShift: '<S927>/Shift_Arithmetic 1' */
24910 L4_MABX_B.Shift_Arithmetic1_bl = L4_MABX_B.DataTypeConversion1_pp << 25;
24911
24912 /* DataTypeConversion: '<S927>/Data Type Conversion2' incorporates:
24913 * Constant: '<S927>/DataPage'
24914 */
24915 L4_MABX_B.DataTypeConversion2_h = L4_MABX_P.DataPage_Value;
24916
24917 /* ArithShift: '<S927>/Shift_Arithmetic 2' */
24918 L4_MABX_B.Shift_Arithmetic2_ma = L4_MABX_B.DataTypeConversion2_h << 24;
24919
24920 /* DataTypeConversion: '<S927>/Data Type Conversion3' incorporates:
24921 * Constant: '<S927>/PDUFormat'
24922 */
24923 L4_MABX_B.DataTypeConversion3_k = L4_MABX_P.PDUFormat_Value;
24924
24925 /* ArithShift: '<S927>/Shift_Arithmetic 3' */
24926 L4_MABX_B.Shift_Arithmetic3_b = L4_MABX_B.DataTypeConversion3_k << 16;
24927
24928 /* DataTypeConversion: '<S927>/Data Type Conversion4' incorporates:
24929 * Constant: '<S927>/PDUSpecific'
24930 */
24931 L4_MABX_B.DataTypeConversion4_c = L4_MABX_P.PDUSpecific_Value;
24932
24933 /* ArithShift: '<S927>/Shift_Arithmetic 4' */
24934 L4_MABX_B.Shift_Arithmetic4_of = L4_MABX_B.DataTypeConversion4_c << 8;
24935
24936 /* DataTypeConversion: '<S927>/Data Type Conversion5' incorporates:
24937 * Constant: '<S927>/SourceAddress'
24938 */
24939 L4_MABX_B.DataTypeConversion5_n = L4_MABX_P.SourceAddress_Value;
24940
24941 /* S-Function (sfix_bitop): '<S937>/Operator' */
24942 L4_MABX_B.Operator_c = L4_MABX_B.Shift_Arithmetic_l |
24943 L4_MABX_B.Shift_Arithmetic1_bl | L4_MABX_B.Shift_Arithmetic2_ma |
24944 L4_MABX_B.Shift_Arithmetic3_b | L4_MABX_B.Shift_Arithmetic4_of |
24945 L4_MABX_B.DataTypeConversion5_n;
24946
24947 /* DataTypeConversion: '<S937>/DataType' */
24948 L4_MABX_B.DataType_bv = L4_MABX_B.Operator_c;
24949
24950 /* DataTypeConversion: '<S926>/Data Type Conversion8' */
24951 L4_MABX_B.DataTypeConversion8_p = L4_MABX_B.DataType_bv;
24952
24953 /* S-Function (sfix_bitop): '<S933>/Operator' */
24954 L4_MABX_B.Operator_i1 = L4_MABX_B.DataTypeConversion8_p &
24955 L4_MABX_P.Operator_BitMask_op;
24956
24957 /* DataTypeConversion: '<S933>/DataType' */
24958 tmp_0 = L4_MABX_B.Operator_i1;
24959 if (tmp_0 > 255U) {
24960 tmp_0 = 255U;
24961 }
24962
24963 L4_MABX_B.DataType_ow = (uint8_T)tmp_0;
24964
24965 /* End of DataTypeConversion: '<S933>/DataType' */
24966
24967 /* S-Function (sfix_bitop): '<S934>/Operator' */
24968 L4_MABX_B.Operator_m = L4_MABX_B.DataTypeConversion8_p &
24969 L4_MABX_P.Operator_BitMask_muo;
24970
24971 /* DataTypeConversion: '<S934>/DataType' */
24972 tmp_0 = L4_MABX_B.Operator_m;
24973 if (tmp_0 > 65535U) {
24974 tmp_0 = 65535U;
24975 }
24976
24977 L4_MABX_B.DataType_f0 = (uint16_T)tmp_0;
24978
24979 /* End of DataTypeConversion: '<S934>/DataType' */
24980
24981 /* ArithShift: '<S926>/Shift_Arithmetic 3' */
24982 L4_MABX_B.Shift_Arithmetic3_o = (uint16_T)((uint32_T)L4_MABX_B.DataType_f0 >>
24983 8);
24984
24985 /* DataTypeConversion: '<S926>/Data Type Conversion9' */
24986 tmp = L4_MABX_B.Shift_Arithmetic3_o;
24987 if (tmp > 255) {
24988 tmp = 255U;
24989 }
24990
24991 L4_MABX_B.MessageIDMidLowByte = (uint8_T)tmp;
24992
24993 /* End of DataTypeConversion: '<S926>/Data Type Conversion9' */
24994
24995 /* S-Function (sfix_bitop): '<S935>/Operator' */
24996 L4_MABX_B.Operator_a4 = L4_MABX_B.DataTypeConversion8_p &
24997 L4_MABX_P.Operator_BitMask_ej;
24998
24999 /* DataTypeConversion: '<S935>/DataType' */
25000 L4_MABX_B.DataType_gg = L4_MABX_B.Operator_a4;
25001
25002 /* ArithShift: '<S926>/Shift_Arithmetic 4' */
25003 L4_MABX_B.Shift_Arithmetic4_k0 = L4_MABX_B.DataType_gg >> 16;
25004
25005 /* DataTypeConversion: '<S926>/Data Type Conversion10' */
25006 tmp_0 = L4_MABX_B.Shift_Arithmetic4_k0;
25007 if (tmp_0 > 255U) {
25008 tmp_0 = 255U;
25009 }
25010
25011 L4_MABX_B.MessageIDMidHighByte = (uint8_T)tmp_0;
25012
25013 /* End of DataTypeConversion: '<S926>/Data Type Conversion10' */
25014
25015 /* S-Function (sfix_bitop): '<S936>/Operator' */
25016 L4_MABX_B.Operator_oo = L4_MABX_B.DataTypeConversion8_p &
25017 L4_MABX_P.Operator_BitMask_lm;
25018
25019 /* DataTypeConversion: '<S936>/DataType' */
25020 L4_MABX_B.DataType_ja = L4_MABX_B.Operator_oo;
25021
25022 /* ArithShift: '<S926>/Shift_Arithmetic 5' */
25023 L4_MABX_B.Shift_Arithmetic5_p = L4_MABX_B.DataType_ja >> 24;
25024
25025 /* DataTypeConversion: '<S926>/Data Type Conversion11' */
25026 tmp_0 = L4_MABX_B.Shift_Arithmetic5_p;
25027 if (tmp_0 > 255U) {
25028 tmp_0 = 255U;
25029 }
25030
25031 L4_MABX_B.MessageIDHighByte = (uint8_T)tmp_0;
25032
25033 /* End of DataTypeConversion: '<S926>/Data Type Conversion11' */
25034
25035 /* DataTypeConversion: '<S926>/Data Type Conversion13' */
25036 tmp_2 = L4_MABX_B.Unit_Delay;
25037 if (tmp_2 < 256.0) {
25038 if (tmp_2 >= 0.0) {
25039 tmp_1 = (uint8_T)tmp_2;
25040 } else {
25041 tmp_1 = 0U;
25042 }
25043 } else {
25044 tmp_1 = MAX_uint8_T;
25045 }
25046
25047 L4_MABX_B.DataTypeConversion13_n = tmp_1;
25048
25049 /* End of DataTypeConversion: '<S926>/Data Type Conversion13' */
25050
25051 /* S-Function (sfix_bitop): '<S932>/Operator' */
25052 L4_MABX_B.Operator_ow = (uint8_T)(L4_MABX_B.DataTypeConversion13_n &
25053 L4_MABX_P.Operator_BitMask_mw);
25054
25055 /* DataTypeConversion: '<S932>/DataType' */
25056 L4_MABX_B.DataType_at = L4_MABX_B.Operator_ow;
25057
25058 /* Sum: '<S926>/Add' incorporates:
25059 * Constant: '<S888>/Constant3'
25060 */
25061 L4_MABX_B.Checksum = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
25062 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
25063 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
25064 ((uint32_T)(uint8_T)((uint32_T)L4_MABX_B.DataType_ohu +
25065 L4_MABX_P.Constant3_Value_ju1) + L4_MABX_P.Constant3_Value_ju1) +
25066 L4_MABX_P.Constant3_Value_ju1) + L4_MABX_P.Constant3_Value_ju1) +
25067 L4_MABX_P.Constant3_Value_ju1) + L4_MABX_P.Constant3_Value_ju1) +
25068 L4_MABX_B.DataType_ow) + L4_MABX_B.MessageIDMidLowByte) +
25069 L4_MABX_B.MessageIDMidHighByte) + L4_MABX_B.MessageIDHighByte) +
25070 L4_MABX_B.DataType_at);
25071
25072 /* ArithShift: '<S926>/Shift_Arithmetic 7' */
25073 L4_MABX_B.Shift_Arithmetic7_j = (uint8_T)((uint32_T)L4_MABX_B.Checksum >> 4);
25074
25075 /* Sum: '<S926>/Add1' */
25076 L4_MABX_B.Add1_d = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic7_j +
25077 L4_MABX_B.Checksum);
25078
25079 /* S-Function (sfix_bitop): '<S931>/Operator' */
25080 L4_MABX_B.Operator_ml = (uint8_T)(L4_MABX_B.Add1_d &
25081 L4_MABX_P.Operator_BitMask_cl);
25082
25083 /* DataTypeConversion: '<S931>/DataType' */
25084 L4_MABX_B.DataType_ff = L4_MABX_B.Operator_ml;
25085
25086 /* DataTypeConversion: '<S888>/Data Type Conversion3' */
25087 L4_MABX_B.DataTypeConversion3_e2 = L4_MABX_B.DataType_ff;
25088
25089 /* S-Function (sfix_bitop): '<S925>/Operator' */
25090 L4_MABX_B.Operator_gn = (uint8_T)(L4_MABX_B.DataTypeConversion3_e2 &
25091 L4_MABX_P.Operator_BitMask_ki);
25092
25093 /* DataTypeConversion: '<S925>/DataType' */
25094 L4_MABX_B.DataType_px = L4_MABX_B.Operator_gn;
25095
25096 /* ArithShift: '<S888>/Shift_Arithmetic 3' */
25097 L4_MABX_B.Shift_Arithmetic3_m = (uint8_T)(L4_MABX_B.DataType_px << 4);
25098
25099 /* S-Function (sfix_bitop): '<S929>/Operator' */
25100 L4_MABX_B.Operator_c1 = (uint8_T)(L4_MABX_B.DataType_hw |
25101 L4_MABX_B.Shift_Arithmetic3_m);
25102
25103 /* DataTypeConversion: '<S929>/DataType' */
25104 L4_MABX_B.DataType_jwo = L4_MABX_B.Operator_c1;
25105
25106 /* DataTypeConversion: '<S883>/Data Type Conversion1' incorporates:
25107 * Constant: '<S888>/Constant3'
25108 */
25109 L4_MABX_B.DataTypeConversion1_m[0] = L4_MABX_B.DataType_ohu;
25110 L4_MABX_B.DataTypeConversion1_m[1] = L4_MABX_P.Constant3_Value_ju1;
25111 L4_MABX_B.DataTypeConversion1_m[2] = L4_MABX_P.Constant3_Value_ju1;
25112 L4_MABX_B.DataTypeConversion1_m[3] = L4_MABX_P.Constant3_Value_ju1;
25113 L4_MABX_B.DataTypeConversion1_m[4] = L4_MABX_P.Constant3_Value_ju1;
25114 L4_MABX_B.DataTypeConversion1_m[5] = L4_MABX_P.Constant3_Value_ju1;
25115 L4_MABX_B.DataTypeConversion1_m[6] = L4_MABX_P.Constant3_Value_ju1;
25116 L4_MABX_B.DataTypeConversion1_m[7] = L4_MABX_B.DataType_jwo;
25117
25118 /* DataTypeConversion: '<S883>/Data Type Conversion' incorporates:
25119 * Constant: '<S855>/CANT_PROPB_XPR_FC_CHANNEL_APV'
25120 */
25121 L4_MABX_B.DataTypeConversion_mj = (uint8_T)
25122 L4_MABX_P.CANT_PROPB_XPR_FC_CHANNEL_APV_V;
25123
25124 /* S-Function (sfix_bitop): '<S898>/Operator' */
25125 L4_MABX_B.Operator_lc = (uint8_T)(L4_MABX_B.DataTypeConversion_mj &
25126 L4_MABX_P.Operator_BitMask_gm);
25127
25128 /* DataTypeConversion: '<S898>/DataType' */
25129 L4_MABX_B.DataType_fx = L4_MABX_B.Operator_lc;
25130
25131 /* DataTypeConversion: '<S883>/Data Type Conversion2' */
25132 L4_MABX_B.DataTypeConversion2_nv = (L4_MABX_B.DataType_fx != 0);
25133
25134 /* Logic: '<S906>/Operator' */
25135 L4_MABX_B.Operator_hzf = (L4_MABX_B.TmpRTBAtOperatorInport1 &&
25136 L4_MABX_B.DataTypeConversion2_nv);
25137
25138 /* DataTypeConversion: '<S906>/DataType' */
25139 L4_MABX_B.DataType_hzm = L4_MABX_B.Operator_hzf;
25140
25141 /* Outputs for Enabled SubSystem: '<S910>/PropB_XPR_FC' incorporates:
25142 * EnablePort: '<S912>/Enable'
25143 */
25144 if (L4_MABX_B.DataType_hzm) {
25145 /* S-Function (rti_commonblock): '<S912>/S-Function1' */
25146 /* This comment workarounds a code generation problem */
25147
25148 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
25149 {
25150 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25151
25152 Float32 delayTime = 0.0;
25153
25154 /* ... Read status and timestamp info (previous message) */
25155 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]);
25156
25157 /* Convert timestamp */
25158 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->processed) {
25159 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp =
25160 rtk_dsts_time_to_simtime_convert
25161 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp);
25162 }
25163
25164 /* Messages with timestamp zero have been received in pause/stop state
25165 and must not be handled.
25166 */
25167 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp > 0.0) {
25168 L4_MABX_B.SFunction1_o1_lb = (real_T)
25169 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->processed;
25170 L4_MABX_B.SFunction1_o2_in5 = (real_T)
25171 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp;
25172 L4_MABX_B.SFunction1_o3_kt = (real_T)
25173 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->deltatime;
25174 L4_MABX_B.SFunction1_o4_i = (real_T)
25175 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->delaytime;
25176 }
25177
25178 /* ... Encode Simulink signals of TX and RM blocks*/
25179 {
25180 rtican_Signal_t CAN_Sgn;
25181
25182 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
25183 /* Add or substract 0.5 in order to round to nearest integer */
25184 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[0] ) +
25185 0.5);
25186 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25187 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25188
25189 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
25190 /* Add or substract 0.5 in order to round to nearest integer */
25191 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[1] ) +
25192 0.5);
25193 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25194 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25195
25196 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
25197 /* Add or substract 0.5 in order to round to nearest integer */
25198 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[2] ) +
25199 0.5);
25200 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25201 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25202
25203 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
25204 /* Add or substract 0.5 in order to round to nearest integer */
25205 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[3] ) +
25206 0.5);
25207 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25208 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25209
25210 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
25211 /* Add or substract 0.5 in order to round to nearest integer */
25212 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[4] ) +
25213 0.5);
25214 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25215 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25216
25217 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
25218 /* Add or substract 0.5 in order to round to nearest integer */
25219 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[5] ) +
25220 0.5);
25221 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25222 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25223
25224 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
25225 /* Add or substract 0.5 in order to round to nearest integer */
25226 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[6] ) +
25227 0.5);
25228 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25229 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25230
25231 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
25232 /* Add or substract 0.5 in order to round to nearest integer */
25233 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[7] ) +
25234 0.5);
25235 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25236 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25237 }
25238
25239 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25240 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC], 8,
25241 &(CAN_Msg[0]), delayTime);
25242 }
25243 }
25244
25245 /* End of Outputs for SubSystem: '<S910>/PropB_XPR_FC' */
25246
25247 /* S-Function (sfix_bitop): '<S903>/Operator' */
25248 L4_MABX_B.Operator_hp = (uint8_T)(L4_MABX_B.DataTypeConversion_mj &
25249 L4_MABX_P.Operator_BitMask_e);
25250
25251 /* DataTypeConversion: '<S903>/DataType' */
25252 L4_MABX_B.DataType_fq = L4_MABX_B.Operator_hp;
25253
25254 /* ArithShift: '<S883>/Shift_Arithmetic 2' */
25255 L4_MABX_B.Shift_Arithmetic2_m = ldexp(L4_MABX_B.DataType_fq, (-3));
25256
25257 /* DataTypeConversion: '<S883>/Data Type Conversion5' */
25258 L4_MABX_B.DataTypeConversion5_iz = (L4_MABX_B.Shift_Arithmetic2_m != 0.0);
25259
25260 /* Logic: '<S909>/Operator' */
25261 L4_MABX_B.Operator_or = (L4_MABX_B.TmpRTBAtOperatorInport1_i &&
25262 L4_MABX_B.DataTypeConversion5_iz);
25263
25264 /* DataTypeConversion: '<S909>/DataType' */
25265 L4_MABX_B.DataType_m5 = L4_MABX_B.Operator_or;
25266
25267 /* Outputs for Enabled SubSystem: '<S911>/PropB_XPR_FC' incorporates:
25268 * EnablePort: '<S913>/Enable'
25269 */
25270 if (L4_MABX_B.DataType_m5) {
25271 /* S-Function (rti_commonblock): '<S913>/S-Function1' */
25272 /* This comment workarounds a code generation problem */
25273
25274 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
25275 {
25276 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25277
25278 Float32 delayTime = 0.0;
25279
25280 /* ... Read status and timestamp info (previous message) */
25281 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]);
25282
25283 /* Convert timestamp */
25284 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->processed) {
25285 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp =
25286 rtk_dsts_time_to_simtime_convert
25287 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp);
25288 }
25289
25290 /* Messages with timestamp zero have been received in pause/stop state
25291 and must not be handled.
25292 */
25293 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp > 0.0) {
25294 L4_MABX_B.SFunction1_o1_f0 = (real_T)
25295 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->processed;
25296 L4_MABX_B.SFunction1_o2_p = (real_T)
25297 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp;
25298 L4_MABX_B.SFunction1_o3_lg = (real_T)
25299 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->deltatime;
25300 L4_MABX_B.SFunction1_o4_ji = (real_T)
25301 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->delaytime;
25302 }
25303
25304 /* ... Encode Simulink signals of TX and RM blocks*/
25305 {
25306 rtican_Signal_t CAN_Sgn;
25307
25308 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
25309 /* Add or substract 0.5 in order to round to nearest integer */
25310 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[0] ) +
25311 0.5);
25312 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25313 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25314
25315 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
25316 /* Add or substract 0.5 in order to round to nearest integer */
25317 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[1] ) +
25318 0.5);
25319 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25320 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25321
25322 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
25323 /* Add or substract 0.5 in order to round to nearest integer */
25324 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[2] ) +
25325 0.5);
25326 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25327 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25328
25329 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
25330 /* Add or substract 0.5 in order to round to nearest integer */
25331 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[3] ) +
25332 0.5);
25333 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25334 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25335
25336 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
25337 /* Add or substract 0.5 in order to round to nearest integer */
25338 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[4] ) +
25339 0.5);
25340 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25341 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25342
25343 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
25344 /* Add or substract 0.5 in order to round to nearest integer */
25345 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[5] ) +
25346 0.5);
25347 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25348 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25349
25350 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
25351 /* Add or substract 0.5 in order to round to nearest integer */
25352 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[6] ) +
25353 0.5);
25354 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25355 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25356
25357 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
25358 /* Add or substract 0.5 in order to round to nearest integer */
25359 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_m[7] ) +
25360 0.5);
25361 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25362 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25363 }
25364
25365 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25366 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC], 8,
25367 &(CAN_Msg[0]), delayTime);
25368 }
25369 }
25370
25371 /* End of Outputs for SubSystem: '<S911>/PropB_XPR_FC' */
25372
25373 /* S-Function (sfix_bitop): '<S899>/Operator' */
25374 L4_MABX_B.Operator_ee = (uint8_T)(L4_MABX_B.DataTypeConversion_mj &
25375 L4_MABX_P.Operator_BitMask_mu);
25376
25377 /* DataTypeConversion: '<S899>/DataType' */
25378 L4_MABX_B.DataType_oh = L4_MABX_B.Operator_ee;
25379
25380 /* S-Function (sfix_bitop): '<S904>/Operator' */
25381 L4_MABX_B.Operator_pxs = (uint8_T)(L4_MABX_B.DataTypeConversion_mj &
25382 L4_MABX_P.Operator_BitMask_hx);
25383
25384 /* DataTypeConversion: '<S904>/DataType' */
25385 L4_MABX_B.DataType_kw = L4_MABX_B.Operator_pxs;
25386
25387 /* ArithShift: '<S883>/Shift_Arithmetic 3' */
25388 L4_MABX_B.Shift_Arithmetic3_cu = ldexp(L4_MABX_B.DataType_kw, (-4));
25389
25390 /* DataTypeConversion: '<S883>/Data Type Conversion6' */
25391 L4_MABX_B.DataTypeConversion6_mq = (L4_MABX_B.Shift_Arithmetic3_cu != 0.0);
25392
25393 /* Logic: '<S900>/Operator' */
25394 L4_MABX_B.Operator_py = (L4_MABX_B.TmpRTBAtOperatorInport1_h &&
25395 L4_MABX_B.DataTypeConversion6_mq);
25396
25397 /* DataTypeConversion: '<S900>/DataType' */
25398 L4_MABX_B.DataType_jk = L4_MABX_B.Operator_py;
25399
25400 /* S-Function (sfix_bitop): '<S905>/Operator' */
25401 L4_MABX_B.Operator_ln = (uint8_T)(L4_MABX_B.DataTypeConversion_mj &
25402 L4_MABX_P.Operator_BitMask_hr);
25403
25404 /* DataTypeConversion: '<S905>/DataType' */
25405 L4_MABX_B.DataType_cc = L4_MABX_B.Operator_ln;
25406
25407 /* ArithShift: '<S883>/Shift_Arithmetic 4' */
25408 L4_MABX_B.Shift_Arithmetic4_n = ldexp(L4_MABX_B.DataType_cc, (-5));
25409
25410 /* DataTypeConversion: '<S883>/Data Type Conversion7' */
25411 L4_MABX_B.DataTypeConversion7_gh = (L4_MABX_B.Shift_Arithmetic4_n != 0.0);
25412
25413 /* Logic: '<S901>/Operator' */
25414 L4_MABX_B.Operator_edk = (L4_MABX_B.TmpRTBAtOperatorInport1_p &&
25415 L4_MABX_B.DataTypeConversion7_gh);
25416
25417 /* DataTypeConversion: '<S901>/DataType' */
25418 L4_MABX_B.DataType_oe = L4_MABX_B.Operator_edk;
25419
25420 /* S-Function (sfix_bitop): '<S902>/Operator' */
25421 L4_MABX_B.Operator_ie = (uint8_T)(L4_MABX_B.DataTypeConversion_mj &
25422 L4_MABX_P.Operator_BitMask_pw);
25423
25424 /* DataTypeConversion: '<S902>/DataType' */
25425 L4_MABX_B.DataType_db = L4_MABX_B.Operator_ie;
25426
25427 /* ArithShift: '<S883>/Shift_Arithmetic ' */
25428 L4_MABX_B.Shift_Arithmetic_e = ldexp(L4_MABX_B.DataType_oh, (-1));
25429
25430 /* DataTypeConversion: '<S883>/Data Type Conversion3' */
25431 L4_MABX_B.DataTypeConversion3_f1 = (L4_MABX_B.Shift_Arithmetic_e != 0.0);
25432
25433 /* Logic: '<S907>/Operator' */
25434 L4_MABX_B.Operator_oz = (L4_MABX_B.TmpRTBAtOperatorInport1_b &&
25435 L4_MABX_B.DataTypeConversion3_f1);
25436
25437 /* DataTypeConversion: '<S907>/DataType' */
25438 L4_MABX_B.DataType_fr = L4_MABX_B.Operator_oz;
25439
25440 /* ArithShift: '<S883>/Shift_Arithmetic 1' */
25441 L4_MABX_B.Shift_Arithmetic1_m = ldexp(L4_MABX_B.DataType_db, (-2));
25442
25443 /* DataTypeConversion: '<S883>/Data Type Conversion4' */
25444 L4_MABX_B.DataTypeConversion4_gv = (L4_MABX_B.Shift_Arithmetic1_m != 0.0);
25445
25446 /* Logic: '<S908>/Operator' */
25447 L4_MABX_B.Operator_nf = (L4_MABX_B.TmpRTBAtOperatorInport1_ij &&
25448 L4_MABX_B.DataTypeConversion4_gv);
25449
25450 /* DataTypeConversion: '<S908>/DataType' */
25451 L4_MABX_B.DataType_bo = L4_MABX_B.Operator_nf;
25452
25453 /* DataTypeConversion: '<S940>/Data Type Conversion' */
25454 L4_MABX_B.DataTypeConversion_e = L4_MABX_B.Latitude__n;
25455
25456 /* DataTypeConversion: '<S940>/Data Type Conversion1' */
25457 L4_MABX_B.DataTypeConversion1_o = L4_MABX_B.Longitude__i;
25458
25459 /* DataTypeConversion: '<S889>/Data Type Conversion2' incorporates:
25460 * Constant: '<S855>/enablePosRapidUpdateTX'
25461 */
25462 L4_MABX_B.DataTypeConversion2_js = L4_MABX_P.enablePosRapidUpdateTX_Value;
25463
25464 /* Outputs for Enabled SubSystem: '<S940>/Std_PosRapidUpdate_01' incorporates:
25465 * EnablePort: '<S941>/Enable'
25466 */
25467 if (L4_MABX_B.DataTypeConversion2_js) {
25468 /* S-Function (rti_commonblock): '<S941>/S-Function1' */
25469 /* This comment workarounds a code generation problem */
25470
25471 /* dSPACE RTICAN TX Message Block: "Std_PosRapidUpdate_01" Id:3 */
25472 {
25473 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25474
25475 Float32 delayTime = 0.0;
25476
25477 /* ... Read status and timestamp info (previous message) */
25478 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]);
25479
25480 /* Convert timestamp */
25481 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->processed) {
25482 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp =
25483 rtk_dsts_time_to_simtime_convert
25484 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp);
25485 }
25486
25487 /* Messages with timestamp zero have been received in pause/stop state
25488 and must not be handled.
25489 */
25490 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp > 0.0) {
25491 L4_MABX_B.SFunction1_o1_at = (real_T)
25492 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->processed;
25493 L4_MABX_B.SFunction1_o2_gq = (real_T)
25494 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp;
25495 L4_MABX_B.SFunction1_o3_c = (real_T)
25496 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->deltatime;
25497 L4_MABX_B.SFunction1_o4_h = (real_T)
25498 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->delaytime;
25499 }
25500
25501 /* ... Encode Simulink signals of TX and RM blocks*/
25502 {
25503 rtican_Signal_t CAN_Sgn;
25504
25505 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
25506 /* Add or substract 0.5 in order to round to nearest integer */
25507 if (( L4_MABX_B.DataTypeConversion_e - ( 0 ) ) / 1.0E-7 < -0.5)
25508 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion_e - ( 0 ) )
25509 / 1.0E-7 - 0.5);
25510 else
25511 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion_e - ( 0 ) )
25512 / 1.0E-7 + 0.5);
25513 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25514 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
25515 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte2;
25516 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte3;
25517
25518 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
25519 /* Add or substract 0.5 in order to round to nearest integer */
25520 if (( L4_MABX_B.DataTypeConversion1_o - ( 0 ) ) / 1.0E-7 < -0.5)
25521 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion1_o - ( 0 )
25522 ) / 1.0E-7 - 0.5);
25523 else
25524 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion1_o - ( 0 )
25525 ) / 1.0E-7 + 0.5);
25526 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25527 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
25528 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte2;
25529 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte3;
25530 }
25531
25532 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25533 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3], 8, &(CAN_Msg[0]),
25534 delayTime);
25535 }
25536 }
25537
25538 /* End of Outputs for SubSystem: '<S940>/Std_PosRapidUpdate_01' */
25539
25540 /* Outputs for Enabled SubSystem: '<S891>/CCVS1_00' incorporates:
25541 * EnablePort: '<S893>/Enable'
25542 */
25543 /* Outputs for Enabled SubSystem: '<S890>/CCVS1_00' incorporates:
25544 * EnablePort: '<S892>/Enable'
25545 */
25546 /* Constant: '<S881>/Enable_TX_CCVS1_00' */
25547 if (L4_MABX_P.Enable_TX_CCVS1_00_Value) {
25548 /* S-Function (rti_commonblock): '<S892>/S-Function1' */
25549 /* This comment workarounds a code generation problem */
25550
25551 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:419361024 */
25552 {
25553 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25554
25555 Float32 delayTime = 0.0;
25556
25557 /* ... Read status and timestamp info (previous message) */
25558 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]);
25559
25560 /* Convert timestamp */
25561 if (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->processed) {
25562 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp =
25563 rtk_dsts_time_to_simtime_convert
25564 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp);
25565 }
25566
25567 /* Messages with timestamp zero have been received in pause/stop state
25568 and must not be handled.
25569 */
25570 if (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp > 0.0) {
25571 L4_MABX_B.SFunction1_o1_cq = (real_T)
25572 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->processed;
25573 L4_MABX_B.SFunction1_o2_pm = (real_T)
25574 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp;
25575 L4_MABX_B.SFunction1_o3_lf = (real_T)
25576 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->deltatime;
25577 L4_MABX_B.SFunction1_o4_gm = (real_T)
25578 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->delaytime;
25579 }
25580
25581 /* ... Encode Simulink signals of TX and RM blocks*/
25582 {
25583 rtican_Signal_t CAN_Sgn;
25584
25585 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
25586 /* Add or substract 0.5 in order to round to nearest integer */
25587 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch_a ) + 0.5);
25588 CAN_Sgn.UnsignedSgn &= 0x00000003;
25589 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25590
25591 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
25592 /* Add or substract 0.5 in order to round to nearest integer */
25593 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch_a ) + 0.5);
25594 CAN_Sgn.UnsignedSgn &= 0x00000003;
25595 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25596 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25597
25598 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
25599 /* Add or substract 0.5 in order to round to nearest integer */
25600 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch_g ) +
25601 0.5);
25602 CAN_Sgn.UnsignedSgn &= 0x00000003;
25603 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25604 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25605
25606 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
25607 /* Add or substract 0.5 in order to round to nearest integer */
25608 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq_o )
25609 + 0.5);
25610 CAN_Sgn.UnsignedSgn &= 0x00000003;
25611 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25612 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25613
25614 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
25615 /* Add or substract 0.5 in order to round to nearest integer */
25616 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_lc -
25617 ( 0 ) ) / 0.00390625 + 0.5);
25618 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25619 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25620 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
25621
25622 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
25623 /* Add or substract 0.5 in order to round to nearest integer */
25624 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive_j ) + 0.5);
25625 CAN_Sgn.UnsignedSgn &= 0x00000003;
25626 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25627
25628 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
25629 /* Add or substract 0.5 in order to round to nearest integer */
25630 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_en )
25631 + 0.5);
25632 CAN_Sgn.UnsignedSgn &= 0x00000003;
25633 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25634 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25635
25636 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
25637 /* Add or substract 0.5 in order to round to nearest integer */
25638 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_is ) + 0.5);
25639 CAN_Sgn.UnsignedSgn &= 0x00000003;
25640 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25641 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25642
25643 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
25644 /* Add or substract 0.5 in order to round to nearest integer */
25645 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch_c ) + 0.5);
25646 CAN_Sgn.UnsignedSgn &= 0x00000003;
25647 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25648 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25649
25650 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
25651 /* Add or substract 0.5 in order to round to nearest integer */
25652 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch_n ) +
25653 0.5);
25654 CAN_Sgn.UnsignedSgn &= 0x00000003;
25655 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25656
25657 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
25658 /* Add or substract 0.5 in order to round to nearest integer */
25659 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch_f ) +
25660 0.5);
25661 CAN_Sgn.UnsignedSgn &= 0x00000003;
25662 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25663 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25664
25665 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
25666 /* Add or substract 0.5 in order to round to nearest integer */
25667 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch_k ) +
25668 0.5);
25669 CAN_Sgn.UnsignedSgn &= 0x00000003;
25670 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25671 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25672
25673 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
25674 /* Add or substract 0.5 in order to round to nearest integer */
25675 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlAccelerateSwitch_n
25676 ) + 0.5);
25677 CAN_Sgn.UnsignedSgn &= 0x00000003;
25678 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25679 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25680
25681 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
25682 /* Add or substract 0.5 in order to round to nearest integer */
25683 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed_k ) + 0.5);
25684 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25685 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25686
25687 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
25688 /* Add or substract 0.5 in order to round to nearest integer */
25689 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState_f ) + 0.5);
25690 CAN_Sgn.UnsignedSgn &= 0x0000001F;
25691 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25692
25693 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
25694 /* Add or substract 0.5 in order to round to nearest integer */
25695 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates_n ) + 0.5);
25696 CAN_Sgn.UnsignedSgn &= 0x00000007;
25697 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
25698 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25699
25700 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
25701 /* Add or substract 0.5 in order to round to nearest integer */
25702 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch_f ) +
25703 0.5);
25704 CAN_Sgn.UnsignedSgn &= 0x00000003;
25705 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25706
25707 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
25708 /* Add or substract 0.5 in order to round to nearest integer */
25709 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch_k ) +
25710 0.5);
25711 CAN_Sgn.UnsignedSgn &= 0x00000003;
25712 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25713 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25714
25715 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
25716 /* Add or substract 0.5 in order to round to nearest integer */
25717 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch_i ) + 0.5);
25718 CAN_Sgn.UnsignedSgn &= 0x00000003;
25719 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25720 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25721
25722 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
25723 /* Add or substract 0.5 in order to round to nearest integer */
25724 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch_f )
25725 + 0.5);
25726 CAN_Sgn.UnsignedSgn &= 0x00000003;
25727 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25728 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25729 }
25730
25731 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25732 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100], 8,
25733 &(CAN_Msg[0]), delayTime);
25734 }
25735
25736 /* S-Function (rti_commonblock): '<S893>/S-Function1' */
25737 /* This comment workarounds a code generation problem */
25738
25739 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:218034432 */
25740 {
25741 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25742
25743 Float32 delayTime = 0.0;
25744
25745 /* ... Read status and timestamp info (previous message) */
25746 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]);
25747
25748 /* Convert timestamp */
25749 if (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->processed) {
25750 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp =
25751 rtk_dsts_time_to_simtime_convert
25752 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp);
25753 }
25754
25755 /* Messages with timestamp zero have been received in pause/stop state
25756 and must not be handled.
25757 */
25758 if (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp > 0.0) {
25759 L4_MABX_B.SFunction1_o1_pw = (real_T)
25760 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->processed;
25761 L4_MABX_B.SFunction1_o2_i4 = (real_T)
25762 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp;
25763 L4_MABX_B.SFunction1_o3_ge = (real_T)
25764 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->deltatime;
25765 L4_MABX_B.SFunction1_o4_j5 = (real_T)
25766 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->delaytime;
25767 }
25768
25769 /* ... Encode Simulink signals of TX and RM blocks*/
25770 {
25771 rtican_Signal_t CAN_Sgn;
25772
25773 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
25774 /* Add or substract 0.5 in order to round to nearest integer */
25775 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch_as ) +
25776 0.5);
25777 CAN_Sgn.UnsignedSgn &= 0x00000003;
25778 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25779
25780 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
25781 /* Add or substract 0.5 in order to round to nearest integer */
25782 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch_ac ) +
25783 0.5);
25784 CAN_Sgn.UnsignedSgn &= 0x00000003;
25785 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25786 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25787
25788 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
25789 /* Add or substract 0.5 in order to round to nearest integer */
25790 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch_gt ) +
25791 0.5);
25792 CAN_Sgn.UnsignedSgn &= 0x00000003;
25793 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25794 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25795
25796 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
25797 /* Add or substract 0.5 in order to round to nearest integer */
25798 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq_ot
25799 ) + 0.5);
25800 CAN_Sgn.UnsignedSgn &= 0x00000003;
25801 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25802 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25803
25804 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
25805 /* Add or substract 0.5 in order to round to nearest integer */
25806 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_lcd -
25807 ( 0 ) ) / 0.00390625 + 0.5);
25808 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25809 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25810 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
25811
25812 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
25813 /* Add or substract 0.5 in order to round to nearest integer */
25814 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive_jk ) + 0.5);
25815 CAN_Sgn.UnsignedSgn &= 0x00000003;
25816 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25817
25818 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
25819 /* Add or substract 0.5 in order to round to nearest integer */
25820 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_enw )
25821 + 0.5);
25822 CAN_Sgn.UnsignedSgn &= 0x00000003;
25823 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25824 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25825
25826 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
25827 /* Add or substract 0.5 in order to round to nearest integer */
25828 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_isk ) + 0.5);
25829 CAN_Sgn.UnsignedSgn &= 0x00000003;
25830 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25831 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25832
25833 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
25834 /* Add or substract 0.5 in order to round to nearest integer */
25835 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch_co ) + 0.5);
25836 CAN_Sgn.UnsignedSgn &= 0x00000003;
25837 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25838 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25839
25840 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
25841 /* Add or substract 0.5 in order to round to nearest integer */
25842 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch_nl ) +
25843 0.5);
25844 CAN_Sgn.UnsignedSgn &= 0x00000003;
25845 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25846
25847 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
25848 /* Add or substract 0.5 in order to round to nearest integer */
25849 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch_fn ) +
25850 0.5);
25851 CAN_Sgn.UnsignedSgn &= 0x00000003;
25852 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25853 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25854
25855 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
25856 /* Add or substract 0.5 in order to round to nearest integer */
25857 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch_ku )
25858 + 0.5);
25859 CAN_Sgn.UnsignedSgn &= 0x00000003;
25860 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25861 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25862
25863 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
25864 /* Add or substract 0.5 in order to round to nearest integer */
25865 CAN_Sgn.UnsignedSgn = (UInt32)
25866 (( L4_MABX_B.CruiseCtrlAccelerateSwitch_no ) + 0.5);
25867 CAN_Sgn.UnsignedSgn &= 0x00000003;
25868 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25869 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25870
25871 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
25872 /* Add or substract 0.5 in order to round to nearest integer */
25873 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed_kj ) +
25874 0.5);
25875 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25876 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25877
25878 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
25879 /* Add or substract 0.5 in order to round to nearest integer */
25880 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState_ff ) + 0.5);
25881 CAN_Sgn.UnsignedSgn &= 0x0000001F;
25882 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25883
25884 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
25885 /* Add or substract 0.5 in order to round to nearest integer */
25886 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates_ng ) + 0.5);
25887 CAN_Sgn.UnsignedSgn &= 0x00000007;
25888 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
25889 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25890
25891 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
25892 /* Add or substract 0.5 in order to round to nearest integer */
25893 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch_fj )
25894 + 0.5);
25895 CAN_Sgn.UnsignedSgn &= 0x00000003;
25896 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25897
25898 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
25899 /* Add or substract 0.5 in order to round to nearest integer */
25900 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch_kc )
25901 + 0.5);
25902 CAN_Sgn.UnsignedSgn &= 0x00000003;
25903 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25904 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25905
25906 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
25907 /* Add or substract 0.5 in order to round to nearest integer */
25908 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch_if ) + 0.5);
25909 CAN_Sgn.UnsignedSgn &= 0x00000003;
25910 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25911 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25912
25913 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
25914 /* Add or substract 0.5 in order to round to nearest integer */
25915 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch_fs
25916 ) + 0.5);
25917 CAN_Sgn.UnsignedSgn &= 0x00000003;
25918 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25919 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25920 }
25921
25922 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25923 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100], 8,
25924 &(CAN_Msg[0]), delayTime);
25925 }
25926 }
25927
25928 /* End of Constant: '<S881>/Enable_TX_CCVS1_00' */
25929 /* End of Outputs for SubSystem: '<S890>/CCVS1_00' */
25930 /* End of Outputs for SubSystem: '<S891>/CCVS1_00' */
25931
25932 /* DataTypeConversion: '<S887>/Data Type Conversion' incorporates:
25933 * Constant: '<S886>/Constant'
25934 */
25935 L4_MABX_B.DataTypeConversion_pz = L4_MABX_P.Constant_Value_eh;
25936
25937 /* DataTypeConversion: '<S887>/Data Type Conversion1' */
25938 L4_MABX_B.DataTypeConversion1_bd = (uint16_T)L4_MABX_B.DataTypeConversion_pz;
25939
25940 /* S-Function (sfix_bitop): '<S918>/Operator' */
25941 L4_MABX_B.Operator_f1 = (uint16_T)(L4_MABX_B.DataTypeConversion1_bd &
25942 L4_MABX_P.Operator_BitMask_p2);
25943
25944 /* DataTypeConversion: '<S918>/DataType' */
25945 tmp = L4_MABX_B.Operator_f1;
25946 if (tmp > 255) {
25947 tmp = 255U;
25948 }
25949
25950 L4_MABX_B.DataType_hq = (uint8_T)tmp;
25951
25952 /* End of DataTypeConversion: '<S918>/DataType' */
25953
25954 /* S-Function (sfix_bitop): '<S919>/Operator' */
25955 L4_MABX_B.Operator_cp = (uint16_T)(L4_MABX_B.DataTypeConversion1_bd &
25956 L4_MABX_P.Operator_BitMask_fb);
25957
25958 /* DataTypeConversion: '<S919>/DataType' */
25959 L4_MABX_B.DataType_iy = L4_MABX_B.Operator_cp;
25960
25961 /* ArithShift: '<S887>/Shift_Arithmetic ' */
25962 L4_MABX_B.Shift_Arithmetic_le = (uint16_T)((uint32_T)L4_MABX_B.DataType_iy >>
25963 8);
25964
25965 /* DataTypeConversion: '<S887>/Data Type Conversion2' */
25966 tmp = L4_MABX_B.Shift_Arithmetic_le;
25967 if (tmp > 255) {
25968 tmp = 255U;
25969 }
25970
25971 L4_MABX_B.DataTypeConversion2_iv = (uint8_T)tmp;
25972
25973 /* End of DataTypeConversion: '<S887>/Data Type Conversion2' */
25974
25975 /* DataTypeConversion: '<S882>/Data Type Conversion1' incorporates:
25976 * Constant: '<S887>/Constant'
25977 */
25978 L4_MABX_B.DataTypeConversion1_pm[0] = L4_MABX_P.Constant_Value_m4;
25979 L4_MABX_B.DataTypeConversion1_pm[1] = L4_MABX_P.Constant_Value_m4;
25980 L4_MABX_B.DataTypeConversion1_pm[2] = L4_MABX_P.Constant_Value_m4;
25981 L4_MABX_B.DataTypeConversion1_pm[3] = L4_MABX_P.Constant_Value_m4;
25982 L4_MABX_B.DataTypeConversion1_pm[4] = L4_MABX_P.Constant_Value_m4;
25983 L4_MABX_B.DataTypeConversion1_pm[5] = L4_MABX_P.Constant_Value_m4;
25984 L4_MABX_B.DataTypeConversion1_pm[6] = L4_MABX_B.DataType_hq;
25985 L4_MABX_B.DataTypeConversion1_pm[7] = L4_MABX_B.DataTypeConversion2_iv;
25986
25987 /* RateTransition: '<S894>/TmpRTBAtHiddenBuf_InsertedFor_PropB_REAX_5_E4_at_inport_10Inport1' */
25988 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_P = L4_MABX_B.Operator_h3;
25989
25990 /* Outputs for Enabled SubSystem: '<S894>/PropB_REAX_5_E4' incorporates:
25991 * EnablePort: '<S896>/Enable'
25992 */
25993 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_P) {
25994 /* S-Function (rti_commonblock): '<S896>/S-Function1' incorporates:
25995 * Constant: '<S894>/Constant'
25996 * Constant: '<S894>/Constant1'
25997 */
25998 /* This comment workarounds a code generation problem */
25999
26000 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
26001 {
26002 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
26003 0x00 };
26004
26005 Float32 delayTime = 0.0;
26006
26007 /* link this pointer to CAN_Msg for use in initialize_io_units() */
26008 CANTP1_PTR_M1_C2_XTD_0x18FFFAE4 = &(CAN_Msg[0]);
26009
26010 /* ... perform loop-back if required */
26011 if (L4_MABX_P.Constant1_Value_gm > 0.5) {
26012 /* ... updating the used tx-clientbuffer */
26013 can_tp1_msg_update_all( CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->module,
26014 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->queue );
26015
26016 /* ... Read status and timestamp info perform loop-back (previous message) */
26017 can_tp1_tx_msg_read_loopback(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4,
26018 8, // datalen
26019 &(CAN_Msg[0]),
26020 CANTP1_RX_SPMSG_M1_C2_XTD);
26021
26022 /* Convert timestamp */
26023 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
26024 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
26025 rtk_dsts_time_to_simtime_convert
26026 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
26027 }
26028 } else {
26029 /* ... Read status and timestamp info (previous message) */
26030 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4);
26031
26032 /* Convert timestamp */
26033 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
26034 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
26035 rtk_dsts_time_to_simtime_convert
26036 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
26037 }
26038 }
26039
26040 /* Messages with timestamp zero have been received in pause/stop state
26041 and must not be handled.
26042 */
26043 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp > 0.0) {
26044 L4_MABX_B.SFunction1_o1_kb = (real_T)
26045 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed;
26046 L4_MABX_B.SFunction1_o2_o = (real_T)
26047 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp;
26048 L4_MABX_B.SFunction1_o3_nh = (real_T)
26049 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->deltatime;
26050 L4_MABX_B.SFunction1_o4_n = (real_T)
26051 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->delaytime;
26052 }
26053
26054 /* ... Encode Simulink signals of TX and RM blocks*/
26055 {
26056 rtican_Signal_t CAN_Sgn;
26057 UInt32 i;
26058
26059 /* Initialize the static message data to zero */
26060 for (i=0; i<8; i++ )
26061 CAN_Msg[i] = 0;
26062
26063 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
26064 /* Add or substract 0.5 in order to round to nearest integer */
26065 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[0] )
26066 + 0.5);
26067 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26068 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26069
26070 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
26071 /* Add or substract 0.5 in order to round to nearest integer */
26072 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[1] )
26073 + 0.5);
26074 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26075 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
26076
26077 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
26078 /* Add or substract 0.5 in order to round to nearest integer */
26079 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[2] )
26080 + 0.5);
26081 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26082 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26083
26084 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
26085 /* Add or substract 0.5 in order to round to nearest integer */
26086 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[3] )
26087 + 0.5);
26088 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26089 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26090
26091 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
26092 /* Add or substract 0.5 in order to round to nearest integer */
26093 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[4] )
26094 + 0.5);
26095 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26096 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
26097
26098 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
26099 /* Add or substract 0.5 in order to round to nearest integer */
26100 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[5] )
26101 + 0.5);
26102 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26103 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26104
26105 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
26106 /* Add or substract 0.5 in order to round to nearest integer */
26107 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[6] )
26108 + 0.5);
26109 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26110 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
26111
26112 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
26113 /* Add or substract 0.5 in order to round to nearest integer */
26114 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[7] )
26115 + 0.5);
26116 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26117 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
26118 }
26119
26120 delayTime = (Float32) L4_MABX_P.Constant_Value_ar / (1700);
26121
26122 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
26123 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFFAE4], 8,
26124 &(CAN_Msg[0]), delayTime);
26125 }
26126 }
26127
26128 /* End of Outputs for SubSystem: '<S894>/PropB_REAX_5_E4' */
26129
26130 /* RateTransition: '<S895>/TmpRTBAtHiddenBuf_InsertedFor_PropB_REAX_5_E4_at_inport_10Inport1' */
26131 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_h = L4_MABX_B.EnablePropB_ReAX_CAN6;
26132
26133 /* Outputs for Enabled SubSystem: '<S895>/PropB_REAX_5_E4' incorporates:
26134 * EnablePort: '<S897>/Enable'
26135 */
26136 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_h) {
26137 /* S-Function (rti_commonblock): '<S897>/S-Function1' incorporates:
26138 * Constant: '<S895>/Constant'
26139 * Constant: '<S895>/Constant1'
26140 */
26141 /* This comment workarounds a code generation problem */
26142
26143 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
26144 {
26145 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
26146 0x00 };
26147
26148 Float32 delayTime = 0.0;
26149
26150 /* link this pointer to CAN_Msg for use in initialize_io_units() */
26151 CANTP1_PTR_M3_C2_XTD_0x18FFFAE4 = &(CAN_Msg[0]);
26152
26153 /* ... perform loop-back if required */
26154 if (L4_MABX_P.Constant1_Value_aq > 0.5) {
26155 /* ... updating the used tx-clientbuffer */
26156 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->module,
26157 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->queue );
26158
26159 /* ... Read status and timestamp info perform loop-back (previous message) */
26160 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4,
26161 8, // datalen
26162 &(CAN_Msg[0]),
26163 CANTP1_RX_SPMSG_M3_C2_XTD);
26164
26165 /* Convert timestamp */
26166 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
26167 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
26168 rtk_dsts_time_to_simtime_convert
26169 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
26170 }
26171 } else {
26172 /* ... Read status and timestamp info (previous message) */
26173 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4);
26174
26175 /* Convert timestamp */
26176 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
26177 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
26178 rtk_dsts_time_to_simtime_convert
26179 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
26180 }
26181 }
26182
26183 /* Messages with timestamp zero have been received in pause/stop state
26184 and must not be handled.
26185 */
26186 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp > 0.0) {
26187 L4_MABX_B.SFunction1_o1_m1 = (real_T)
26188 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed;
26189 L4_MABX_B.SFunction1_o2_b1 = (real_T)
26190 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp;
26191 L4_MABX_B.SFunction1_o3_i = (real_T)
26192 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->deltatime;
26193 L4_MABX_B.SFunction1_o4_is = (real_T)
26194 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->delaytime;
26195 }
26196
26197 /* ... Encode Simulink signals of TX and RM blocks*/
26198 {
26199 rtican_Signal_t CAN_Sgn;
26200 UInt32 i;
26201
26202 /* Initialize the static message data to zero */
26203 for (i=0; i<8; i++ )
26204 CAN_Msg[i] = 0;
26205
26206 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
26207 /* Add or substract 0.5 in order to round to nearest integer */
26208 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[0] )
26209 + 0.5);
26210 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26211 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26212
26213 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
26214 /* Add or substract 0.5 in order to round to nearest integer */
26215 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[1] )
26216 + 0.5);
26217 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26218 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
26219
26220 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
26221 /* Add or substract 0.5 in order to round to nearest integer */
26222 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[2] )
26223 + 0.5);
26224 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26225 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26226
26227 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
26228 /* Add or substract 0.5 in order to round to nearest integer */
26229 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[3] )
26230 + 0.5);
26231 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26232 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26233
26234 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
26235 /* Add or substract 0.5 in order to round to nearest integer */
26236 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[4] )
26237 + 0.5);
26238 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26239 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
26240
26241 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
26242 /* Add or substract 0.5 in order to round to nearest integer */
26243 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[5] )
26244 + 0.5);
26245 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26246 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26247
26248 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
26249 /* Add or substract 0.5 in order to round to nearest integer */
26250 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[6] )
26251 + 0.5);
26252 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26253 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
26254
26255 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
26256 /* Add or substract 0.5 in order to round to nearest integer */
26257 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_pm[7] )
26258 + 0.5);
26259 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26260 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
26261 }
26262
26263 delayTime = (Float32) L4_MABX_P.Constant_Value_b / (1700);
26264
26265 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
26266 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFFAE4], 8,
26267 &(CAN_Msg[0]), delayTime);
26268 }
26269 }
26270
26271 /* End of Outputs for SubSystem: '<S895>/PropB_REAX_5_E4' */
26272
26273 /* DataTypeConversion: '<S914>/Data Type Conversion' */
26274 L4_MABX_B.DataTypeConversion_ov = L4_MABX_B.SID_a;
26275
26276 /* DataTypeConversion: '<S914>/Data Type Conversion1' */
26277 L4_MABX_B.DataTypeConversion1_c = L4_MABX_B.COGReference_f;
26278
26279 /* DataTypeConversion: '<S914>/Data Type Conversion2' */
26280 L4_MABX_B.DataTypeConversion2_ff = L4_MABX_B.CourseOverGround_k;
26281
26282 /* DataTypeConversion: '<S914>/Data Type Conversion3' */
26283 L4_MABX_B.DataTypeConversion3_gl = L4_MABX_B.SpeedOverGround_i;
26284
26285 /* DataTypeConversion: '<S884>/Data Type Conversion2' incorporates:
26286 * Constant: '<S855>/enableCOGSRapidUpdateTX'
26287 */
26288 L4_MABX_B.DataTypeConversion2_hc = L4_MABX_P.enableCOGSRapidUpdateTX_Value;
26289
26290 /* Outputs for Enabled SubSystem: '<S914>/Std_COGSOGRapidUpdate_01' incorporates:
26291 * EnablePort: '<S915>/Enable'
26292 */
26293 if (L4_MABX_B.DataTypeConversion2_hc) {
26294 /* S-Function (rti_commonblock): '<S915>/S-Function1' incorporates:
26295 * Constant: '<S914>/Constant'
26296 * Constant: '<S914>/Constant1'
26297 */
26298 /* This comment workarounds a code generation problem */
26299
26300 /* dSPACE RTICAN TX Message Block: "Std_COGSOGRapidUpdate_01" Id:7 */
26301 {
26302 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
26303 0x00 };
26304
26305 Float32 delayTime = 0.0;
26306
26307 /* link this pointer to CAN_Msg for use in initialize_io_units() */
26308 CANTP1_PTR_M3_C2_STD_0x7 = &(CAN_Msg[0]);
26309
26310 /* ... perform loop-back if required */
26311 if (L4_MABX_P.Constant1_Value_bp > 0.5) {
26312 /* ... updating the used tx-clientbuffer */
26313 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_STD_0X7->module,
26314 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->queue );
26315
26316 /* ... Read status and timestamp info perform loop-back (previous message) */
26317 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_STD_0X7,
26318 8, // datalen
26319 &(CAN_Msg[0]),
26320 CANTP1_RX_SPMSG_M3_C2_STD);
26321
26322 /* Convert timestamp */
26323 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed) {
26324 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp =
26325 rtk_dsts_time_to_simtime_convert
26326 (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp);
26327 }
26328 } else {
26329 /* ... Read status and timestamp info (previous message) */
26330 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_STD_0X7);
26331
26332 /* Convert timestamp */
26333 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed) {
26334 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp =
26335 rtk_dsts_time_to_simtime_convert
26336 (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp);
26337 }
26338 }
26339
26340 /* Messages with timestamp zero have been received in pause/stop state
26341 and must not be handled.
26342 */
26343 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp > 0.0) {
26344 L4_MABX_B.SFunction1_o1_d = (real_T)
26345 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed;
26346 L4_MABX_B.SFunction1_o2_la = (real_T)
26347 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp;
26348 L4_MABX_B.SFunction1_o3_d = (real_T)
26349 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->deltatime;
26350 L4_MABX_B.SFunction1_o4_e = (real_T)
26351 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->delaytime;
26352 }
26353
26354 /* ... Encode Simulink signals of TX and RM blocks*/
26355 {
26356 rtican_Signal_t CAN_Sgn;
26357 UInt32 i;
26358
26359 /* Initialize the static message data to zero */
26360 for (i=0; i<8; i++ )
26361 CAN_Msg[i] = 0;
26362
26363 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
26364 /* Add or substract 0.5 in order to round to nearest integer */
26365 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_ov ) +
26366 0.5);
26367 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26368 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26369
26370 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
26371 /* Add or substract 0.5 in order to round to nearest integer */
26372 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c ) +
26373 0.5);
26374 CAN_Sgn.UnsignedSgn &= 0x00000003;
26375 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
26376
26377 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
26378 /* Add or substract 0.5 in order to round to nearest integer */
26379 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_ff - ( 0
26380 ) ) / 0.0001 + 0.5);
26381 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
26382 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26383 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
26384
26385 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
26386 /* Add or substract 0.5 in order to round to nearest integer */
26387 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_gl - ( 0
26388 ) ) / 0.01 + 0.5);
26389 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
26390 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
26391 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
26392 }
26393
26394 /* mask unused bits with '1' */
26395 CAN_Msg[1] |= 0xFC;
26396 CAN_Msg[6] |= 0xFF;
26397 CAN_Msg[7] |= 0xFF;
26398 delayTime = (Float32) L4_MABX_P.Constant_Value_p1 / (2000);
26399
26400 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
26401 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X7], 8, &(CAN_Msg[0]),
26402 delayTime);
26403 }
26404 }
26405
26406 /* End of Outputs for SubSystem: '<S914>/Std_COGSOGRapidUpdate_01' */
26407
26408 /* DataTypeConversion: '<S885>/Data Type Conversion2' incorporates:
26409 * Constant: '<S855>/enableEBC1_8B_TX'
26410 */
26411 L4_MABX_B.DataTypeConversion2_cw = L4_MABX_P.enableEBC1_8B_TX_Value;
26412
26413 /* Outputs for Enabled SubSystem: '<S916>/EBC1_TX' incorporates:
26414 * EnablePort: '<S917>/Enable'
26415 */
26416 if (L4_MABX_B.DataTypeConversion2_cw) {
26417 /* S-Function (rti_commonblock): '<S917>/S-Function1' */
26418 /* This comment workarounds a code generation problem */
26419
26420 /* dSPACE RTICAN TX Message Block: "EBC1_TX" Id:418382219 */
26421 {
26422 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
26423
26424 Float32 delayTime = 0.0;
26425
26426 /* ... Read status and timestamp info (previous message) */
26427 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]);
26428
26429 /* Convert timestamp */
26430 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->processed) {
26431 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp =
26432 rtk_dsts_time_to_simtime_convert
26433 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp);
26434 }
26435
26436 /* Messages with timestamp zero have been received in pause/stop state
26437 and must not be handled.
26438 */
26439 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp > 0.0) {
26440 L4_MABX_B.SFunction1_o1_lh = (real_T)
26441 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->processed;
26442 L4_MABX_B.SFunction1_o2_gm = (real_T)
26443 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp;
26444 L4_MABX_B.SFunction1_o3_c0 = (real_T)
26445 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->deltatime;
26446 L4_MABX_B.SFunction1_o4_m = (real_T)
26447 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->delaytime;
26448 }
26449
26450 /* ... Encode Simulink signals of TX and RM blocks*/
26451 {
26452 rtican_Signal_t CAN_Sgn;
26453
26454 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
26455 /* Add or substract 0.5 in order to round to nearest integer */
26456 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASREngCtrlActive ) + 0.5);
26457 CAN_Sgn.UnsignedSgn &= 0x00000003;
26458 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26459
26460 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
26461 /* Add or substract 0.5 in order to round to nearest integer */
26462 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASRBrakeCtrlActive ) + 0.5);
26463 CAN_Sgn.UnsignedSgn &= 0x00000003;
26464 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26465 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26466
26467 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
26468 /* Add or substract 0.5 in order to round to nearest integer */
26469 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AntiLockBrakingActive ) +
26470 0.5);
26471 CAN_Sgn.UnsignedSgn &= 0x00000003;
26472 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26473 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26474
26475 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
26476 /* Add or substract 0.5 in order to round to nearest integer */
26477 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EBSBrakeSwitch_o ) + 0.5);
26478 CAN_Sgn.UnsignedSgn &= 0x00000003;
26479 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26480 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26481
26482 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
26483 /* Add or substract 0.5 in order to round to nearest integer */
26484 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakePedalPos - ( 0 ) ) /
26485 0.4 + 0.5);
26486 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26487 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
26488
26489 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
26490 /* Add or substract 0.5 in order to round to nearest integer */
26491 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABSOffroadSwitch ) + 0.5);
26492 CAN_Sgn.UnsignedSgn &= 0x00000003;
26493 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26494
26495 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
26496 /* Add or substract 0.5 in order to round to nearest integer */
26497 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASROffroadSwitch ) + 0.5);
26498 CAN_Sgn.UnsignedSgn &= 0x00000003;
26499 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26500 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26501
26502 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
26503 /* Add or substract 0.5 in order to round to nearest integer */
26504 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASRHillHolderSwitch ) + 0.5);
26505 CAN_Sgn.UnsignedSgn &= 0x00000003;
26506 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26507 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26508
26509 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
26510 /* Add or substract 0.5 in order to round to nearest integer */
26511 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TractionCtrlOverrideSwitch )
26512 + 0.5);
26513 CAN_Sgn.UnsignedSgn &= 0x00000003;
26514 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26515 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26516
26517 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
26518 /* Add or substract 0.5 in order to round to nearest integer */
26519 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AccelInterlockSwitch ) + 0.5);
26520 CAN_Sgn.UnsignedSgn &= 0x00000003;
26521 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26522
26523 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
26524 /* Add or substract 0.5 in order to round to nearest integer */
26525 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngDerateSwitch ) + 0.5);
26526 CAN_Sgn.UnsignedSgn &= 0x00000003;
26527 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26528 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26529
26530 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
26531 /* Add or substract 0.5 in order to round to nearest integer */
26532 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngAuxShutdownSwitch ) + 0.5);
26533 CAN_Sgn.UnsignedSgn &= 0x00000003;
26534 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26535 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26536
26537 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
26538 /* Add or substract 0.5 in order to round to nearest integer */
26539 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.RemoteAccelEnableSwitch ) +
26540 0.5);
26541 CAN_Sgn.UnsignedSgn &= 0x00000003;
26542 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26543 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26544
26545 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
26546 /* Add or substract 0.5 in order to round to nearest integer */
26547 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngRetarderSelection - ( 0 )
26548 ) / 0.4 + 0.5);
26549 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26550 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
26551
26552 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
26553 /* Add or substract 0.5 in order to round to nearest integer */
26554 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABSFullyOperational ) + 0.5);
26555 CAN_Sgn.UnsignedSgn &= 0x00000003;
26556 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26557
26558 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
26559 /* Add or substract 0.5 in order to round to nearest integer */
26560 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EBSRedWarningSignal ) + 0.5);
26561 CAN_Sgn.UnsignedSgn &= 0x00000003;
26562 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26563 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26564
26565 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
26566 /* Add or substract 0.5 in order to round to nearest integer */
26567 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABS_EBSAmberWarningSignal )
26568 + 0.5);
26569 CAN_Sgn.UnsignedSgn &= 0x00000003;
26570 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26571 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26572
26573 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
26574 /* Add or substract 0.5 in order to round to nearest integer */
26575 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ATC_ASRInformationSignal ) +
26576 0.5);
26577 CAN_Sgn.UnsignedSgn &= 0x00000003;
26578 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26579 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26580
26581 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
26582 /* Add or substract 0.5 in order to round to nearest integer */
26583 CAN_Sgn.UnsignedSgn = (UInt32)
26584 (( L4_MABX_B.SrcAddrssOfCtrllngDvcFrBrkCntrl ) + 0.5);
26585 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26586 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
26587
26588 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
26589 /* Add or substract 0.5 in order to round to nearest integer */
26590 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.HaltBrakeSwitch ) + 0.5);
26591 CAN_Sgn.UnsignedSgn &= 0x00000003;
26592 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26593 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
26594
26595 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
26596 /* Add or substract 0.5 in order to round to nearest integer */
26597 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TrailerABSStatus ) + 0.5);
26598 CAN_Sgn.UnsignedSgn &= 0x00000003;
26599 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26600 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
26601
26602 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
26603 /* Add or substract 0.5 in order to round to nearest integer */
26604 CAN_Sgn.UnsignedSgn = (UInt32)
26605 (( L4_MABX_B.TrctrMntdTrilerABSWarningSignal ) + 0.5);
26606 CAN_Sgn.UnsignedSgn &= 0x00000003;
26607 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26608 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
26609 }
26610
26611 /* mask unused bits with '1' */
26612 CAN_Msg[7] |= 0x03;
26613
26614 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
26615 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B], 8,
26616 &(CAN_Msg[0]), delayTime);
26617 }
26618 }
26619
26620 /* End of Outputs for SubSystem: '<S916>/EBC1_TX' */
26621
26622 /* End of Outputs for SubSystem: '<S851>/CAN_TX_100ms' */
26623
26624 /* DiscretePulseGenerator: '<S1080>/Flash' */
26625 L4_MABX_B.Flash = (L4_MABX_DW.clockTickCounter_c < L4_MABX_P.Flash_Duty) &&
26626 (L4_MABX_DW.clockTickCounter_c >= 0) ? L4_MABX_P.Flash_Amp : 0.0;
26627 if (L4_MABX_DW.clockTickCounter_c >= L4_MABX_P.Flash_Period - 1.0) {
26628 L4_MABX_DW.clockTickCounter_c = 0;
26629 } else {
26630 L4_MABX_DW.clockTickCounter_c++;
26631 }
26632
26633 /* End of DiscretePulseGenerator: '<S1080>/Flash' */
26634 /* user code (Output function Trailer for TID3) */
26635
26636 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
26637 /* EventChannel: 0 */
26638 if (tid == 0) {
26639 DSXCP_service(0);
26640 }
26641
26642 /* If subsystem generates rate grouping Output functions,
26643 * when tid is used in Output function for one rate,
26644 * all Output functions include tid as a local variable.
26645 * As result, some Output functions may have unused tid.
26646 */
26647 UNUSED_PARAMETER(tid);
26648}
26649
26650/* Model update function for TID3 */
26651void L4_MABX_update3(void) /* Sample time: [0.1s, 0.0s] */
26652{
26653 /* Update for Atomic SubSystem: '<S851>/CAN_TX_100ms' */
26654
26655 /* Update for Enabled SubSystem: '<S888>/Rolling_15_counter' incorporates:
26656 * EnablePort: '<S930>/Enable'
26657 */
26658 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R) {
26659 /* Update for UnitDelay: '<S930>/Unit_Delay' */
26660 L4_MABX_DW.Unit_Delay_DSTATE = L4_MABX_B.FixPtSwitch;
26661 }
26662
26663 /* End of Update for SubSystem: '<S888>/Rolling_15_counter' */
26664
26665 /* End of Update for SubSystem: '<S851>/CAN_TX_100ms' */
26666
26667 /* Update for RateTransition: '<S1080>/TmpRTBAtANDInport1' */
26668 L4_MABX_DW.TmpRTBAtANDInport1_Buffer0 = L4_MABX_B.Flash;
26669}
26670
26671/* Model output function for TID4 */
26672void L4_MABX_output4(void) /* Sample time: [0.25s, 0.0s] */
26673{
26674 int_T tid = 4;
26675
26676 /* user code (Output function Trailer for TID4) */
26677
26678 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
26679 /* EventChannel: 0 */
26680 if (tid == 0) {
26681 DSXCP_service(0);
26682 }
26683
26684 /* If subsystem generates rate grouping Output functions,
26685 * when tid is used in Output function for one rate,
26686 * all Output functions include tid as a local variable.
26687 * As result, some Output functions may have unused tid.
26688 */
26689 UNUSED_PARAMETER(tid);
26690}
26691
26692/* Model update function for TID4 */
26693void L4_MABX_update4(void) /* Sample time: [0.25s, 0.0s] */
26694{
26695 /* (no update code required) */
26696}
26697
26698/* Model output function for TID5 */
26699void L4_MABX_output5(void) /* Sample time: [0.5s, 0.0s] */
26700{
26701 int_T tid = 5;
26702 boolean_T zcEvent;
26703 uint32_T q0;
26704 uint32_T qY;
26705
26706 /* S-Function (rti_commonblock): '<S28>/S-Function1' */
26707 /* This comment workarounds a code generation problem */
26708
26709 /* dSPACE RTICAN Status block */
26710 /* ... read status variables of the CAN microcontroller */
26711 {
26712 UInt32 loop_counter, memory, j;
26713 for (j=0;j<=9;j++) {
26714 rtican_type1_tq_error[0][6] = can_tp1_service_read
26715 (can_type1_service_M1_C1[j]);
26716 loop_counter = 0;
26717 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
26718 (can_type1_service_M1_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26719 loop_counter++;
26720 if (loop_counter > MAX_LOOP) {
26721 memory = rtican_type1_error_level;
26722 rtican_type1_error_level = 1;
26723 rtican_type1_tq_err_sig(0, 6);
26724 rtican_type1_error_level = memory;
26725 break;
26726 }
26727 }
26728
26729 if (j==CANTP1_M1_C1_RXLost) {
26730 rtican_type1_tq_error[0][6] = can_tp1_service_read
26731 (can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]);
26732 loop_counter = 0;
26733 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
26734 (can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]))==
26735 DSMCOM_BUFFER_OVERFLOW) {
26736 loop_counter++;
26737 if (loop_counter > MAX_LOOP) {
26738 memory = rtican_type1_error_level;
26739 rtican_type1_error_level = 1;
26740 rtican_type1_tq_err_sig(0, 6);
26741 rtican_type1_error_level = memory;
26742 break;
26743 }
26744 }
26745 }
26746 }
26747
26748 L4_MABX_B.SFunction1_o1_kx = (UInt32)
26749 can_type1_service_M1_C1[CANTP1_M1_C1_Status]->data0;
26750 DIAG_CAN1_Count_Stuff_Errors = (UInt32)
26751 can_type1_service_M1_C1[CANTP1_M1_C1_StuffErrors]->data0;
26752 DIAG_CAN1_Count_Format_Errors = (UInt32)
26753 can_type1_service_M1_C1[CANTP1_M1_C1_FormatErrors]->data0;
26754 DIAG_CAN1_Count_Ack_Errors = (UInt32)
26755 can_type1_service_M1_C1[CANTP1_M1_C1_AckErrors]->data0;
26756 DIAG_CAN1_Count_Bit0_Errors = (UInt32)
26757 can_type1_service_M1_C1[CANTP1_M1_C1_Bit0Errors]->data0;
26758 DIAG_CAN1_Count_Bit1_Errors = (UInt32)
26759 can_type1_service_M1_C1[CANTP1_M1_C1_Bit1Errors]->data0;
26760 DIAG_CAN1_Count_CRC_Errors = (UInt32)
26761 can_type1_service_M1_C1[CANTP1_M1_C1_CRCErrors]->data0;
26762 DIAG_CAN1_Count_RX_Lost = (UInt32)
26763 (can_type1_service_M1_C1[CANTP1_M1_C1_RXLost]->data0 +
26764 can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]->data0);
26765 DIAG_CAN1_Count_RX_OK = (UInt32) can_type1_service_M1_C1[CANTP1_M1_C1_RXOK
26766 ]->data0;
26767 DIAG_CAN1_Count_TX_OK = (UInt32) can_type1_service_M1_C1[CANTP1_M1_C1_TXOK
26768 ]->data0;
26769 }
26770
26771 /* DataTypeConversion: '<S1>/Data Type Conversion' */
26772 DIAG_CAN1_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26773 ((int32_T)L4_MABX_B.SFunction1_o1_kx);
26774
26775 /* RelationalOperator: '<S22>/Operator' incorporates:
26776 * Constant: '<S1>/Constant'
26777 */
26778 L4_MABX_B.Operator_eu = (L4_MABX_P.Constant_Value_cq == DIAG_CAN1_Status);
26779
26780 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' incorporates:
26781 * EnablePort: '<S11>/Enable'
26782 */
26783 if (L4_MABX_B.Operator_eu) {
26784 /* Reshape: '<S30>/Reshape' incorporates:
26785 * Constant: '<S30>/Constant'
26786 */
26787 L4_MABX_B.Reshape_g[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_l[0];
26788 L4_MABX_B.Reshape_g[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_l[1];
26789
26790 /* UnitDelay: '<S30>/Unit_Delay' */
26791 L4_MABX_B.Unit_Delay_h4 = L4_MABX_DW.Unit_Delay_DSTATE_f1;
26792
26793 /* UnitDelay: '<S31>/Unit Delay' */
26794 L4_MABX_B.UnitDelay_f4 = L4_MABX_DW.UnitDelay_DSTATE_j;
26795
26796 /* Switch: '<S34>/Switch1' incorporates:
26797 * Constant: '<S31>/E'
26798 * Constant: '<S31>/IV'
26799 * Switch: '<S33>/Switch1'
26800 */
26801 if (L4_MABX_B.Unit_Delay_h4) {
26802 L4_MABX_B.Switch1_o = L4_MABX_P.IV_Value_m;
26803 } else {
26804 if (L4_MABX_P.E_Value) {
26805 /* Sum: '<S31>/Subtract' incorporates:
26806 * Constant: '<S31>/Constant'
26807 * Switch: '<S33>/Switch1'
26808 */
26809 q0 = L4_MABX_P.Constant_Value_jc;
26810 qY = q0 + L4_MABX_B.UnitDelay_f4;
26811 if (qY < q0) {
26812 qY = MAX_uint32_T;
26813 }
26814
26815 L4_MABX_B.Subtract_ot = qY;
26816
26817 /* End of Sum: '<S31>/Subtract' */
26818
26819 /* Switch: '<S33>/Switch1' */
26820 L4_MABX_B.Switch1_a = L4_MABX_B.Subtract_ot;
26821 } else {
26822 /* Switch: '<S33>/Switch1' */
26823 L4_MABX_B.Switch1_a = L4_MABX_B.UnitDelay_f4;
26824 }
26825
26826 L4_MABX_B.Switch1_o = L4_MABX_B.Switch1_a;
26827 }
26828
26829 /* End of Switch: '<S34>/Switch1' */
26830
26831 /* Selector: '<S30>/Selector' */
26832 L4_MABX_B.Selector_d = L4_MABX_B.Reshape_g[(int32_T)L4_MABX_B.Switch1_o - 1];
26833
26834 /* Outputs for Triggered SubSystem: '<S11>/CAN_TYPE1_BOR_M1_C1' incorporates:
26835 * TriggerPort: '<S29>/Trigger'
26836 */
26837 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE == POS_ZCSIG) !=
26838 (int32_T)L4_MABX_B.Selector_d) &&
26839 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE !=
26840 UNINITIALIZED_ZCSIG));
26841 if (zcEvent) {
26842 /* S-Function (rti_commonblock): '<S29>/S-Function1' */
26843 /* This comment workarounds a code generation problem */
26844
26845 /* dSPACE RTICAN Bus Off Recovery block */
26846 /* ... Perform software-reset of the CAN microcontroller */
26847 {
26848 UInt32 loop_counter, memory;
26849 loop_counter = 0;
26850 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_BOff_return
26851 (can_type1_channel_M1_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26852 loop_counter++;
26853 if (loop_counter > MAX_LOOP) {
26854 memory = rtican_type1_error_level;
26855 rtican_type1_error_level = 1;
26856 rtican_type1_tq_err_sig(0, 0);
26857 rtican_type1_error_level = memory;
26858 break;
26859 }
26860 }
26861
26862 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_all_wakeup
26863 (can_type1_channel_M1_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26864 loop_counter++;
26865 if (loop_counter > MAX_LOOP) {
26866 memory = rtican_type1_error_level;
26867 rtican_type1_error_level = 1;
26868 rtican_type1_tq_err_sig(0, 0);
26869 rtican_type1_error_level = memory;
26870 break;
26871 }
26872 }
26873 }
26874 }
26875
26876 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE = L4_MABX_B.Selector_d;
26877
26878 /* End of Outputs for SubSystem: '<S11>/CAN_TYPE1_BOR_M1_C1' */
26879
26880 /* RelationalOperator: '<S32>/Operator' */
26881 L4_MABX_B.Operator_f5e = (L4_MABX_B.Switch1_o == L4_MABX_ConstB.Width_p);
26882 }
26883
26884 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
26885
26886 /* S-Function (rti_commonblock): '<S20>/S-Function1' */
26887 /* This comment workarounds a code generation problem */
26888
26889 /* dSPACE RTICAN Status block */
26890 /* ... read status variables of the CAN microcontroller */
26891 {
26892 UInt32 loop_counter, memory, j;
26893 for (j=0;j<=9;j++) {
26894 rtican_type1_tq_error[2][6] = can_tp1_service_read
26895 (can_type1_service_M3_C1[j]);
26896 loop_counter = 0;
26897 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26898 (can_type1_service_M3_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26899 loop_counter++;
26900 if (loop_counter > MAX_LOOP) {
26901 memory = rtican_type1_error_level;
26902 rtican_type1_error_level = 1;
26903 rtican_type1_tq_err_sig(2, 6);
26904 rtican_type1_error_level = memory;
26905 break;
26906 }
26907 }
26908
26909 if (j==CANTP1_M3_C1_RXLost) {
26910 rtican_type1_tq_error[2][6] = can_tp1_service_read
26911 (can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]);
26912 loop_counter = 0;
26913 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26914 (can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]))==
26915 DSMCOM_BUFFER_OVERFLOW) {
26916 loop_counter++;
26917 if (loop_counter > MAX_LOOP) {
26918 memory = rtican_type1_error_level;
26919 rtican_type1_error_level = 1;
26920 rtican_type1_tq_err_sig(2, 6);
26921 rtican_type1_error_level = memory;
26922 break;
26923 }
26924 }
26925 }
26926 }
26927
26928 L4_MABX_B.SFunction1_o1_g3 = (UInt32)
26929 can_type1_service_M3_C1[CANTP1_M3_C1_Status]->data0;
26930 DIAG_CAN5_Count_Stuff_Errors = (UInt32)
26931 can_type1_service_M3_C1[CANTP1_M3_C1_StuffErrors]->data0;
26932 DIAG_CAN5_Count_Format_Errors = (UInt32)
26933 can_type1_service_M3_C1[CANTP1_M3_C1_FormatErrors]->data0;
26934 DIAG_CAN5_Count_Ack_Errors = (UInt32)
26935 can_type1_service_M3_C1[CANTP1_M3_C1_AckErrors]->data0;
26936 DIAG_CAN5_Count_Bit0_Errors = (UInt32)
26937 can_type1_service_M3_C1[CANTP1_M3_C1_Bit0Errors]->data0;
26938 DIAG_CAN5_Count_Bit1_Errors = (UInt32)
26939 can_type1_service_M3_C1[CANTP1_M3_C1_Bit1Errors]->data0;
26940 DIAG_CAN5_Count_CRC_Errors = (UInt32)
26941 can_type1_service_M3_C1[CANTP1_M3_C1_CRCErrors]->data0;
26942 DIAG_CAN5_Count_RX_Lost = (UInt32)
26943 (can_type1_service_M3_C1[CANTP1_M3_C1_RXLost]->data0 +
26944 can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]->data0);
26945 DIAG_CAN5_Count_RX_OK = (UInt32) can_type1_service_M3_C1[CANTP1_M3_C1_RXOK
26946 ]->data0;
26947 DIAG_CAN5_Count_TX_OK = (UInt32) can_type1_service_M3_C1[CANTP1_M3_C1_TXOK
26948 ]->data0;
26949 }
26950
26951 /* DataTypeConversion: '<S1>/Data Type Conversion5' */
26952 DIAG_CAN5_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26953 ((int32_T)L4_MABX_B.SFunction1_o1_g3);
26954
26955 /* RelationalOperator: '<S26>/Operator' incorporates:
26956 * Constant: '<S1>/Constant4'
26957 */
26958 L4_MABX_B.Operator_ms = (L4_MABX_P.Constant4_Value_np == DIAG_CAN5_Status);
26959
26960 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' incorporates:
26961 * EnablePort: '<S15>/Enable'
26962 */
26963 if (L4_MABX_B.Operator_ms) {
26964 /* Reshape: '<S54>/Reshape' incorporates:
26965 * Constant: '<S54>/Constant'
26966 */
26967 L4_MABX_B.Reshape_a[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_j[0];
26968 L4_MABX_B.Reshape_a[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_j[1];
26969
26970 /* UnitDelay: '<S54>/Unit_Delay' */
26971 L4_MABX_B.Unit_Delay_p1 = L4_MABX_DW.Unit_Delay_DSTATE_i5;
26972
26973 /* UnitDelay: '<S55>/Unit Delay' */
26974 L4_MABX_B.UnitDelay_j = L4_MABX_DW.UnitDelay_DSTATE_p;
26975
26976 /* Switch: '<S58>/Switch1' incorporates:
26977 * Constant: '<S55>/E'
26978 * Constant: '<S55>/IV'
26979 * Switch: '<S57>/Switch1'
26980 */
26981 if (L4_MABX_B.Unit_Delay_p1) {
26982 L4_MABX_B.Switch1_k = L4_MABX_P.IV_Value_h;
26983 } else {
26984 if (L4_MABX_P.E_Value_db) {
26985 /* Sum: '<S55>/Subtract' incorporates:
26986 * Constant: '<S55>/Constant'
26987 * Switch: '<S57>/Switch1'
26988 */
26989 q0 = L4_MABX_P.Constant_Value_jg;
26990 qY = q0 + L4_MABX_B.UnitDelay_j;
26991 if (qY < q0) {
26992 qY = MAX_uint32_T;
26993 }
26994
26995 L4_MABX_B.Subtract_md = qY;
26996
26997 /* End of Sum: '<S55>/Subtract' */
26998
26999 /* Switch: '<S57>/Switch1' */
27000 L4_MABX_B.Switch1_lh = L4_MABX_B.Subtract_md;
27001 } else {
27002 /* Switch: '<S57>/Switch1' */
27003 L4_MABX_B.Switch1_lh = L4_MABX_B.UnitDelay_j;
27004 }
27005
27006 L4_MABX_B.Switch1_k = L4_MABX_B.Switch1_lh;
27007 }
27008
27009 /* End of Switch: '<S58>/Switch1' */
27010
27011 /* Selector: '<S54>/Selector' */
27012 L4_MABX_B.Selector_p = L4_MABX_B.Reshape_a[(int32_T)L4_MABX_B.Switch1_k - 1];
27013
27014 /* Outputs for Triggered SubSystem: '<S15>/CAN_TYPE1_BOR_M3_C1' incorporates:
27015 * TriggerPort: '<S53>/Trigger'
27016 */
27017 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE == POS_ZCSIG) !=
27018 (int32_T)L4_MABX_B.Selector_p) &&
27019 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE !=
27020 UNINITIALIZED_ZCSIG));
27021 if (zcEvent) {
27022 /* S-Function (rti_commonblock): '<S53>/S-Function1' */
27023 /* This comment workarounds a code generation problem */
27024
27025 /* dSPACE RTICAN Bus Off Recovery block */
27026 /* ... Perform software-reset of the CAN microcontroller */
27027 {
27028 UInt32 loop_counter, memory;
27029 loop_counter = 0;
27030 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_BOff_return
27031 (can_type1_channel_M3_C1)) == DSMCOM_BUFFER_OVERFLOW) {
27032 loop_counter++;
27033 if (loop_counter > MAX_LOOP) {
27034 memory = rtican_type1_error_level;
27035 rtican_type1_error_level = 1;
27036 rtican_type1_tq_err_sig(2, 0);
27037 rtican_type1_error_level = memory;
27038 break;
27039 }
27040 }
27041
27042 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_all_wakeup
27043 (can_type1_channel_M3_C1)) == DSMCOM_BUFFER_OVERFLOW) {
27044 loop_counter++;
27045 if (loop_counter > MAX_LOOP) {
27046 memory = rtican_type1_error_level;
27047 rtican_type1_error_level = 1;
27048 rtican_type1_tq_err_sig(2, 0);
27049 rtican_type1_error_level = memory;
27050 break;
27051 }
27052 }
27053 }
27054 }
27055
27056 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE = L4_MABX_B.Selector_p;
27057
27058 /* End of Outputs for SubSystem: '<S15>/CAN_TYPE1_BOR_M3_C1' */
27059
27060 /* RelationalOperator: '<S56>/Operator' */
27061 L4_MABX_B.Operator_ho = (L4_MABX_B.Switch1_k == L4_MABX_ConstB.Width_a);
27062 }
27063
27064 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
27065
27066 /* S-Function (rti_commonblock): '<S21>/S-Function1' */
27067 /* This comment workarounds a code generation problem */
27068
27069 /* dSPACE RTICAN Status block */
27070 /* ... read status variables of the CAN microcontroller */
27071 {
27072 UInt32 loop_counter, memory, j;
27073 for (j=0;j<=9;j++) {
27074 rtican_type1_tq_error[2][6] = can_tp1_service_read
27075 (can_type1_service_M3_C2[j]);
27076 loop_counter = 0;
27077 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
27078 (can_type1_service_M3_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
27079 loop_counter++;
27080 if (loop_counter > MAX_LOOP) {
27081 memory = rtican_type1_error_level;
27082 rtican_type1_error_level = 1;
27083 rtican_type1_tq_err_sig(2, 6);
27084 rtican_type1_error_level = memory;
27085 break;
27086 }
27087 }
27088
27089 if (j==CANTP1_M3_C2_RXLost) {
27090 rtican_type1_tq_error[2][6] = can_tp1_service_read
27091 (can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]);
27092 loop_counter = 0;
27093 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
27094 (can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]))==
27095 DSMCOM_BUFFER_OVERFLOW) {
27096 loop_counter++;
27097 if (loop_counter > MAX_LOOP) {
27098 memory = rtican_type1_error_level;
27099 rtican_type1_error_level = 1;
27100 rtican_type1_tq_err_sig(2, 6);
27101 rtican_type1_error_level = memory;
27102 break;
27103 }
27104 }
27105 }
27106 }
27107
27108 L4_MABX_B.SFunction1_o1_ar = (UInt32)
27109 can_type1_service_M3_C2[CANTP1_M3_C2_Status]->data0;
27110 DIAG_CAN6_Count_Stuff_Errors = (UInt32)
27111 can_type1_service_M3_C2[CANTP1_M3_C2_StuffErrors]->data0;
27112 DIAG_CAN6_Count_Format_Errors = (UInt32)
27113 can_type1_service_M3_C2[CANTP1_M3_C2_FormatErrors]->data0;
27114 DIAG_CAN6_Count_Ack_Errors = (UInt32)
27115 can_type1_service_M3_C2[CANTP1_M3_C2_AckErrors]->data0;
27116 DIAG_CAN6_Count_Bit0_Errors = (UInt32)
27117 can_type1_service_M3_C2[CANTP1_M3_C2_Bit0Errors]->data0;
27118 DIAG_CAN6_Count_Bit1_Errors = (UInt32)
27119 can_type1_service_M3_C2[CANTP1_M3_C2_Bit1Errors]->data0;
27120 DIAG_CAN6_Count_CRC_Errors = (UInt32)
27121 can_type1_service_M3_C2[CANTP1_M3_C2_CRCErrors]->data0;
27122 DIAG_CAN6_Count_RX_Lost = (UInt32)
27123 (can_type1_service_M3_C2[CANTP1_M3_C2_RXLost]->data0 +
27124 can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]->data0);
27125 DIAG_CAN6_Count_RX_OK = (UInt32) can_type1_service_M3_C2[CANTP1_M3_C2_RXOK
27126 ]->data0;
27127 DIAG_CAN6_Count_TX_OK = (UInt32) can_type1_service_M3_C2[CANTP1_M3_C2_TXOK
27128 ]->data0;
27129 }
27130
27131 /* DataTypeConversion: '<S1>/Data Type Conversion4' */
27132 DIAG_CAN6_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
27133 ((int32_T)L4_MABX_B.SFunction1_o1_ar);
27134
27135 /* RelationalOperator: '<S27>/Operator' incorporates:
27136 * Constant: '<S1>/Constant5'
27137 */
27138 L4_MABX_B.Operator_fv = (L4_MABX_P.Constant5_Value_m == DIAG_CAN6_Status);
27139
27140 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' incorporates:
27141 * EnablePort: '<S16>/Enable'
27142 */
27143 if (L4_MABX_B.Operator_fv) {
27144 /* Reshape: '<S60>/Reshape' incorporates:
27145 * Constant: '<S60>/Constant'
27146 */
27147 L4_MABX_B.Reshape_j[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_e[0];
27148 L4_MABX_B.Reshape_j[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_e[1];
27149
27150 /* UnitDelay: '<S60>/Unit_Delay' */
27151 L4_MABX_B.Unit_Delay_mw = L4_MABX_DW.Unit_Delay_DSTATE_l5;
27152
27153 /* UnitDelay: '<S61>/Unit Delay' */
27154 L4_MABX_B.UnitDelay_a = L4_MABX_DW.UnitDelay_DSTATE_dr;
27155
27156 /* Switch: '<S64>/Switch1' incorporates:
27157 * Constant: '<S61>/E'
27158 * Constant: '<S61>/IV'
27159 * Switch: '<S63>/Switch1'
27160 */
27161 if (L4_MABX_B.Unit_Delay_mw) {
27162 L4_MABX_B.Switch1_h = L4_MABX_P.IV_Value_ey;
27163 } else {
27164 if (L4_MABX_P.E_Value_c) {
27165 /* Sum: '<S61>/Subtract' incorporates:
27166 * Constant: '<S61>/Constant'
27167 * Switch: '<S63>/Switch1'
27168 */
27169 q0 = L4_MABX_P.Constant_Value_iu;
27170 qY = q0 + L4_MABX_B.UnitDelay_a;
27171 if (qY < q0) {
27172 qY = MAX_uint32_T;
27173 }
27174
27175 L4_MABX_B.Subtract_fc = qY;
27176
27177 /* End of Sum: '<S61>/Subtract' */
27178
27179 /* Switch: '<S63>/Switch1' */
27180 L4_MABX_B.Switch1_b = L4_MABX_B.Subtract_fc;
27181 } else {
27182 /* Switch: '<S63>/Switch1' */
27183 L4_MABX_B.Switch1_b = L4_MABX_B.UnitDelay_a;
27184 }
27185
27186 L4_MABX_B.Switch1_h = L4_MABX_B.Switch1_b;
27187 }
27188
27189 /* End of Switch: '<S64>/Switch1' */
27190
27191 /* Selector: '<S60>/Selector' */
27192 L4_MABX_B.Selector_h = L4_MABX_B.Reshape_j[(int32_T)L4_MABX_B.Switch1_h - 1];
27193
27194 /* Outputs for Triggered SubSystem: '<S16>/CAN_TYPE1_BOR_M3_C2' incorporates:
27195 * TriggerPort: '<S59>/Trigger'
27196 */
27197 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE == POS_ZCSIG) !=
27198 (int32_T)L4_MABX_B.Selector_h) &&
27199 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE !=
27200 UNINITIALIZED_ZCSIG));
27201 if (zcEvent) {
27202 /* S-Function (rti_commonblock): '<S59>/S-Function1' */
27203 /* This comment workarounds a code generation problem */
27204
27205 /* dSPACE RTICAN Bus Off Recovery block */
27206 /* ... Perform software-reset of the CAN microcontroller */
27207 {
27208 UInt32 loop_counter, memory;
27209 loop_counter = 0;
27210 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_BOff_return
27211 (can_type1_channel_M3_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27212 loop_counter++;
27213 if (loop_counter > MAX_LOOP) {
27214 memory = rtican_type1_error_level;
27215 rtican_type1_error_level = 1;
27216 rtican_type1_tq_err_sig(2, 0);
27217 rtican_type1_error_level = memory;
27218 break;
27219 }
27220 }
27221
27222 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_all_wakeup
27223 (can_type1_channel_M3_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27224 loop_counter++;
27225 if (loop_counter > MAX_LOOP) {
27226 memory = rtican_type1_error_level;
27227 rtican_type1_error_level = 1;
27228 rtican_type1_tq_err_sig(2, 0);
27229 rtican_type1_error_level = memory;
27230 break;
27231 }
27232 }
27233 }
27234 }
27235
27236 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE = L4_MABX_B.Selector_h;
27237
27238 /* End of Outputs for SubSystem: '<S16>/CAN_TYPE1_BOR_M3_C2' */
27239
27240 /* RelationalOperator: '<S62>/Operator' */
27241 L4_MABX_B.Operator_bgt = (L4_MABX_B.Switch1_h == L4_MABX_ConstB.Width);
27242 }
27243
27244 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
27245
27246 /* S-Function (rti_commonblock): '<S18>/S-Function1' */
27247 /* This comment workarounds a code generation problem */
27248
27249 /* dSPACE RTICAN Status block */
27250 /* ... read status variables of the CAN microcontroller */
27251 {
27252 UInt32 loop_counter, memory, j;
27253 for (j=0;j<=9;j++) {
27254 rtican_type1_tq_error[1][6] = can_tp1_service_read
27255 (can_type1_service_M2_C1[j]);
27256 loop_counter = 0;
27257 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
27258 (can_type1_service_M2_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
27259 loop_counter++;
27260 if (loop_counter > MAX_LOOP) {
27261 memory = rtican_type1_error_level;
27262 rtican_type1_error_level = 1;
27263 rtican_type1_tq_err_sig(1, 6);
27264 rtican_type1_error_level = memory;
27265 break;
27266 }
27267 }
27268
27269 if (j==CANTP1_M2_C1_RXLost) {
27270 rtican_type1_tq_error[1][6] = can_tp1_service_read
27271 (can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]);
27272 loop_counter = 0;
27273 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
27274 (can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]))==
27275 DSMCOM_BUFFER_OVERFLOW) {
27276 loop_counter++;
27277 if (loop_counter > MAX_LOOP) {
27278 memory = rtican_type1_error_level;
27279 rtican_type1_error_level = 1;
27280 rtican_type1_tq_err_sig(1, 6);
27281 rtican_type1_error_level = memory;
27282 break;
27283 }
27284 }
27285 }
27286 }
27287
27288 L4_MABX_B.SFunction1_o1_h4v = (UInt32)
27289 can_type1_service_M2_C1[CANTP1_M2_C1_Status]->data0;
27290 DIAG_CAN3_Count_Stuff_Errors = (UInt32)
27291 can_type1_service_M2_C1[CANTP1_M2_C1_StuffErrors]->data0;
27292 DIAG_CAN3_Count_Format_Errors = (UInt32)
27293 can_type1_service_M2_C1[CANTP1_M2_C1_FormatErrors]->data0;
27294 DIAG_CAN3_Count_Ack_Errors = (UInt32)
27295 can_type1_service_M2_C1[CANTP1_M2_C1_AckErrors]->data0;
27296 DIAG_CAN3_Count_Bit0_Errors = (UInt32)
27297 can_type1_service_M2_C1[CANTP1_M2_C1_Bit0Errors]->data0;
27298 DIAG_CAN3_Count_Bit1_Errors = (UInt32)
27299 can_type1_service_M2_C1[CANTP1_M2_C1_Bit1Errors]->data0;
27300 DIAG_CAN3_Count_CRC_Errors = (UInt32)
27301 can_type1_service_M2_C1[CANTP1_M2_C1_CRCErrors]->data0;
27302 DIAG_CAN3_Count_RX_Lost = (UInt32)
27303 (can_type1_service_M2_C1[CANTP1_M2_C1_RXLost]->data0 +
27304 can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]->data0);
27305 DIAG_CAN3_Count_RX_OK = (UInt32) can_type1_service_M2_C1[CANTP1_M2_C1_RXOK
27306 ]->data0;
27307 DIAG_CAN3_Count_TX_OK = (UInt32) can_type1_service_M2_C1[CANTP1_M2_C1_TXOK
27308 ]->data0;
27309 }
27310
27311 /* DataTypeConversion: '<S1>/Data Type Conversion3' */
27312 DIAG_CAN3_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
27313 ((int32_T)L4_MABX_B.SFunction1_o1_h4v);
27314
27315 /* RelationalOperator: '<S24>/Operator' incorporates:
27316 * Constant: '<S1>/Constant1'
27317 */
27318 L4_MABX_B.Operator_bs = (L4_MABX_P.Constant1_Value_c04 == DIAG_CAN3_Status);
27319
27320 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' incorporates:
27321 * EnablePort: '<S13>/Enable'
27322 */
27323 if (L4_MABX_B.Operator_bs) {
27324 /* Reshape: '<S42>/Reshape' incorporates:
27325 * Constant: '<S42>/Constant'
27326 */
27327 L4_MABX_B.Reshape_i[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_o[0];
27328 L4_MABX_B.Reshape_i[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_o[1];
27329
27330 /* UnitDelay: '<S42>/Unit_Delay' */
27331 L4_MABX_B.Unit_Delay_m0 = L4_MABX_DW.Unit_Delay_DSTATE_h41;
27332
27333 /* UnitDelay: '<S43>/Unit Delay' */
27334 L4_MABX_B.UnitDelay_d = L4_MABX_DW.UnitDelay_DSTATE_dr4;
27335
27336 /* Switch: '<S46>/Switch1' incorporates:
27337 * Constant: '<S43>/E'
27338 * Constant: '<S43>/IV'
27339 * Switch: '<S45>/Switch1'
27340 */
27341 if (L4_MABX_B.Unit_Delay_m0) {
27342 L4_MABX_B.Switch1_k4 = L4_MABX_P.IV_Value_b;
27343 } else {
27344 if (L4_MABX_P.E_Value_d) {
27345 /* Sum: '<S43>/Subtract' incorporates:
27346 * Constant: '<S43>/Constant'
27347 * Switch: '<S45>/Switch1'
27348 */
27349 q0 = L4_MABX_P.Constant_Value_h3;
27350 qY = q0 + L4_MABX_B.UnitDelay_d;
27351 if (qY < q0) {
27352 qY = MAX_uint32_T;
27353 }
27354
27355 L4_MABX_B.Subtract_h = qY;
27356
27357 /* End of Sum: '<S43>/Subtract' */
27358
27359 /* Switch: '<S45>/Switch1' */
27360 L4_MABX_B.Switch1_fr = L4_MABX_B.Subtract_h;
27361 } else {
27362 /* Switch: '<S45>/Switch1' */
27363 L4_MABX_B.Switch1_fr = L4_MABX_B.UnitDelay_d;
27364 }
27365
27366 L4_MABX_B.Switch1_k4 = L4_MABX_B.Switch1_fr;
27367 }
27368
27369 /* End of Switch: '<S46>/Switch1' */
27370
27371 /* Selector: '<S42>/Selector' */
27372 L4_MABX_B.Selector_g = L4_MABX_B.Reshape_i[(int32_T)L4_MABX_B.Switch1_k4 - 1];
27373
27374 /* Outputs for Triggered SubSystem: '<S13>/CAN_TYPE1_BOR_M2_C1' incorporates:
27375 * TriggerPort: '<S41>/Trigger'
27376 */
27377 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE == POS_ZCSIG) !=
27378 (int32_T)L4_MABX_B.Selector_g) &&
27379 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE !=
27380 UNINITIALIZED_ZCSIG));
27381 if (zcEvent) {
27382 /* S-Function (rti_commonblock): '<S41>/S-Function1' */
27383 /* This comment workarounds a code generation problem */
27384
27385 /* dSPACE RTICAN Bus Off Recovery block */
27386 /* ... Perform software-reset of the CAN microcontroller */
27387 {
27388 UInt32 loop_counter, memory;
27389 loop_counter = 0;
27390 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_BOff_return
27391 (can_type1_channel_M2_C1)) == DSMCOM_BUFFER_OVERFLOW) {
27392 loop_counter++;
27393 if (loop_counter > MAX_LOOP) {
27394 memory = rtican_type1_error_level;
27395 rtican_type1_error_level = 1;
27396 rtican_type1_tq_err_sig(1, 0);
27397 rtican_type1_error_level = memory;
27398 break;
27399 }
27400 }
27401
27402 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_all_wakeup
27403 (can_type1_channel_M2_C1)) == DSMCOM_BUFFER_OVERFLOW) {
27404 loop_counter++;
27405 if (loop_counter > MAX_LOOP) {
27406 memory = rtican_type1_error_level;
27407 rtican_type1_error_level = 1;
27408 rtican_type1_tq_err_sig(1, 0);
27409 rtican_type1_error_level = memory;
27410 break;
27411 }
27412 }
27413 }
27414 }
27415
27416 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE = L4_MABX_B.Selector_g;
27417
27418 /* End of Outputs for SubSystem: '<S13>/CAN_TYPE1_BOR_M2_C1' */
27419
27420 /* RelationalOperator: '<S44>/Operator' */
27421 L4_MABX_B.Operator_dhn = (L4_MABX_B.Switch1_k4 == L4_MABX_ConstB.Width_iw);
27422 }
27423
27424 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
27425
27426 /* S-Function (rti_commonblock): '<S19>/S-Function1' */
27427 /* This comment workarounds a code generation problem */
27428
27429 /* dSPACE RTICAN Status block */
27430 /* ... read status variables of the CAN microcontroller */
27431 {
27432 UInt32 loop_counter, memory, j;
27433 for (j=0;j<=9;j++) {
27434 rtican_type1_tq_error[1][6] = can_tp1_service_read
27435 (can_type1_service_M2_C2[j]);
27436 loop_counter = 0;
27437 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
27438 (can_type1_service_M2_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
27439 loop_counter++;
27440 if (loop_counter > MAX_LOOP) {
27441 memory = rtican_type1_error_level;
27442 rtican_type1_error_level = 1;
27443 rtican_type1_tq_err_sig(1, 6);
27444 rtican_type1_error_level = memory;
27445 break;
27446 }
27447 }
27448
27449 if (j==CANTP1_M2_C2_RXLost) {
27450 rtican_type1_tq_error[1][6] = can_tp1_service_read
27451 (can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]);
27452 loop_counter = 0;
27453 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
27454 (can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]))==
27455 DSMCOM_BUFFER_OVERFLOW) {
27456 loop_counter++;
27457 if (loop_counter > MAX_LOOP) {
27458 memory = rtican_type1_error_level;
27459 rtican_type1_error_level = 1;
27460 rtican_type1_tq_err_sig(1, 6);
27461 rtican_type1_error_level = memory;
27462 break;
27463 }
27464 }
27465 }
27466 }
27467
27468 L4_MABX_B.SFunction1_o1_ma = (UInt32)
27469 can_type1_service_M2_C2[CANTP1_M2_C2_Status]->data0;
27470 DIAG_CAN4_Count_Stuff_Errors = (UInt32)
27471 can_type1_service_M2_C2[CANTP1_M2_C2_StuffErrors]->data0;
27472 DIAG_CAN4_Count_Format_Errors = (UInt32)
27473 can_type1_service_M2_C2[CANTP1_M2_C2_FormatErrors]->data0;
27474 DIAG_CAN4_Count_Ack_Errors = (UInt32)
27475 can_type1_service_M2_C2[CANTP1_M2_C2_AckErrors]->data0;
27476 DIAG_CAN4_Count_Bit0_Errors = (UInt32)
27477 can_type1_service_M2_C2[CANTP1_M2_C2_Bit0Errors]->data0;
27478 DIAG_CAN4_Count_Bit1_Errors = (UInt32)
27479 can_type1_service_M2_C2[CANTP1_M2_C2_Bit1Errors]->data0;
27480 DIAG_CAN4_Count_CRC_Errors = (UInt32)
27481 can_type1_service_M2_C2[CANTP1_M2_C2_CRCErrors]->data0;
27482 DIAG_CAN4_Count_RX_Lost = (UInt32)
27483 (can_type1_service_M2_C2[CANTP1_M2_C2_RXLost]->data0 +
27484 can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]->data0);
27485 DIAG_CAN4_Count_RX_OK = (UInt32) can_type1_service_M2_C2[CANTP1_M2_C2_RXOK
27486 ]->data0;
27487 DIAG_CAN4_Count_TX_OK = (UInt32) can_type1_service_M2_C2[CANTP1_M2_C2_TXOK
27488 ]->data0;
27489 }
27490
27491 /* DataTypeConversion: '<S1>/Data Type Conversion2' */
27492 DIAG_CAN4_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
27493 ((int32_T)L4_MABX_B.SFunction1_o1_ma);
27494
27495 /* RelationalOperator: '<S25>/Operator' incorporates:
27496 * Constant: '<S1>/Constant3'
27497 */
27498 L4_MABX_B.Operator_bw = (L4_MABX_P.Constant3_Value_h == DIAG_CAN4_Status);
27499
27500 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' incorporates:
27501 * EnablePort: '<S14>/Enable'
27502 */
27503 if (L4_MABX_B.Operator_bw) {
27504 /* Reshape: '<S48>/Reshape' incorporates:
27505 * Constant: '<S48>/Constant'
27506 */
27507 L4_MABX_B.Reshape_n[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_n[0];
27508 L4_MABX_B.Reshape_n[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_n[1];
27509
27510 /* UnitDelay: '<S48>/Unit_Delay' */
27511 L4_MABX_B.Unit_Delay_fl = L4_MABX_DW.Unit_Delay_DSTATE_mq;
27512
27513 /* UnitDelay: '<S49>/Unit Delay' */
27514 L4_MABX_B.UnitDelay_l = L4_MABX_DW.UnitDelay_DSTATE_h;
27515
27516 /* Switch: '<S52>/Switch1' incorporates:
27517 * Constant: '<S49>/E'
27518 * Constant: '<S49>/IV'
27519 * Switch: '<S51>/Switch1'
27520 */
27521 if (L4_MABX_B.Unit_Delay_fl) {
27522 L4_MABX_B.Switch1_e = L4_MABX_P.IV_Value_k;
27523 } else {
27524 if (L4_MABX_P.E_Value_m) {
27525 /* Sum: '<S49>/Subtract' incorporates:
27526 * Constant: '<S49>/Constant'
27527 * Switch: '<S51>/Switch1'
27528 */
27529 q0 = L4_MABX_P.Constant_Value_o0;
27530 qY = q0 + L4_MABX_B.UnitDelay_l;
27531 if (qY < q0) {
27532 qY = MAX_uint32_T;
27533 }
27534
27535 L4_MABX_B.Subtract_f1 = qY;
27536
27537 /* End of Sum: '<S49>/Subtract' */
27538
27539 /* Switch: '<S51>/Switch1' */
27540 L4_MABX_B.Switch1_c = L4_MABX_B.Subtract_f1;
27541 } else {
27542 /* Switch: '<S51>/Switch1' */
27543 L4_MABX_B.Switch1_c = L4_MABX_B.UnitDelay_l;
27544 }
27545
27546 L4_MABX_B.Switch1_e = L4_MABX_B.Switch1_c;
27547 }
27548
27549 /* End of Switch: '<S52>/Switch1' */
27550
27551 /* Selector: '<S48>/Selector' */
27552 L4_MABX_B.Selector_i = L4_MABX_B.Reshape_n[(int32_T)L4_MABX_B.Switch1_e - 1];
27553
27554 /* Outputs for Triggered SubSystem: '<S14>/CAN_TYPE1_BOR_M2_C2' incorporates:
27555 * TriggerPort: '<S47>/Trigger'
27556 */
27557 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE == POS_ZCSIG) !=
27558 (int32_T)L4_MABX_B.Selector_i) &&
27559 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE !=
27560 UNINITIALIZED_ZCSIG));
27561 if (zcEvent) {
27562 /* S-Function (rti_commonblock): '<S47>/S-Function1' */
27563 /* This comment workarounds a code generation problem */
27564
27565 /* dSPACE RTICAN Bus Off Recovery block */
27566 /* ... Perform software-reset of the CAN microcontroller */
27567 {
27568 UInt32 loop_counter, memory;
27569 loop_counter = 0;
27570 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_BOff_return
27571 (can_type1_channel_M2_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27572 loop_counter++;
27573 if (loop_counter > MAX_LOOP) {
27574 memory = rtican_type1_error_level;
27575 rtican_type1_error_level = 1;
27576 rtican_type1_tq_err_sig(1, 0);
27577 rtican_type1_error_level = memory;
27578 break;
27579 }
27580 }
27581
27582 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_all_wakeup
27583 (can_type1_channel_M2_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27584 loop_counter++;
27585 if (loop_counter > MAX_LOOP) {
27586 memory = rtican_type1_error_level;
27587 rtican_type1_error_level = 1;
27588 rtican_type1_tq_err_sig(1, 0);
27589 rtican_type1_error_level = memory;
27590 break;
27591 }
27592 }
27593 }
27594 }
27595
27596 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE = L4_MABX_B.Selector_i;
27597
27598 /* End of Outputs for SubSystem: '<S14>/CAN_TYPE1_BOR_M2_C2' */
27599
27600 /* RelationalOperator: '<S50>/Operator' */
27601 L4_MABX_B.Operator_ou = (L4_MABX_B.Switch1_e == L4_MABX_ConstB.Width_i);
27602 }
27603
27604 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
27605
27606 /* S-Function (rti_commonblock): '<S17>/S-Function1' */
27607 /* This comment workarounds a code generation problem */
27608
27609 /* dSPACE RTICAN Status block */
27610 /* ... read status variables of the CAN microcontroller */
27611 {
27612 UInt32 loop_counter, memory, j;
27613 for (j=0;j<=9;j++) {
27614 rtican_type1_tq_error[0][6] = can_tp1_service_read
27615 (can_type1_service_M1_C2[j]);
27616 loop_counter = 0;
27617 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
27618 (can_type1_service_M1_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
27619 loop_counter++;
27620 if (loop_counter > MAX_LOOP) {
27621 memory = rtican_type1_error_level;
27622 rtican_type1_error_level = 1;
27623 rtican_type1_tq_err_sig(0, 6);
27624 rtican_type1_error_level = memory;
27625 break;
27626 }
27627 }
27628
27629 if (j==CANTP1_M1_C2_RXLost) {
27630 rtican_type1_tq_error[0][6] = can_tp1_service_read
27631 (can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]);
27632 loop_counter = 0;
27633 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
27634 (can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]))==
27635 DSMCOM_BUFFER_OVERFLOW) {
27636 loop_counter++;
27637 if (loop_counter > MAX_LOOP) {
27638 memory = rtican_type1_error_level;
27639 rtican_type1_error_level = 1;
27640 rtican_type1_tq_err_sig(0, 6);
27641 rtican_type1_error_level = memory;
27642 break;
27643 }
27644 }
27645 }
27646 }
27647
27648 L4_MABX_B.SFunction1_o1_og = (UInt32)
27649 can_type1_service_M1_C2[CANTP1_M1_C2_Status]->data0;
27650 DIAG_CAN2_Count_Stuff_Errors = (UInt32)
27651 can_type1_service_M1_C2[CANTP1_M1_C2_StuffErrors]->data0;
27652 DIAG_CAN2_Count_Format_Errors = (UInt32)
27653 can_type1_service_M1_C2[CANTP1_M1_C2_FormatErrors]->data0;
27654 DIAG_CAN2_Count_Ack_Errors = (UInt32)
27655 can_type1_service_M1_C2[CANTP1_M1_C2_AckErrors]->data0;
27656 DIAG_CAN2_Count_Bit0_Errors = (UInt32)
27657 can_type1_service_M1_C2[CANTP1_M1_C2_Bit0Errors]->data0;
27658 DIAG_CAN2_Count_Bit1_Errors = (UInt32)
27659 can_type1_service_M1_C2[CANTP1_M1_C2_Bit1Errors]->data0;
27660 DIAG_CAN2_Count_CRC_Errors = (UInt32)
27661 can_type1_service_M1_C2[CANTP1_M1_C2_CRCErrors]->data0;
27662 DIAG_CAN2_Count_RX_Lost = (UInt32)
27663 (can_type1_service_M1_C2[CANTP1_M1_C2_RXLost]->data0 +
27664 can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]->data0);
27665 DIAG_CAN2_Count_RX_OK = (UInt32) can_type1_service_M1_C2[CANTP1_M1_C2_RXOK
27666 ]->data0;
27667 DIAG_CAN2_Count_TX_OK = (UInt32) can_type1_service_M1_C2[CANTP1_M1_C2_TXOK
27668 ]->data0;
27669 }
27670
27671 /* DataTypeConversion: '<S1>/Data Type Conversion1' */
27672 DIAG_CAN2_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
27673 ((int32_T)L4_MABX_B.SFunction1_o1_og);
27674
27675 /* RelationalOperator: '<S23>/Operator' incorporates:
27676 * Constant: '<S1>/Constant2'
27677 */
27678 L4_MABX_B.Operator_eb = (L4_MABX_P.Constant2_Value_j == DIAG_CAN2_Status);
27679
27680 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' incorporates:
27681 * EnablePort: '<S12>/Enable'
27682 */
27683 if (L4_MABX_B.Operator_eb) {
27684 /* Reshape: '<S36>/Reshape' incorporates:
27685 * Constant: '<S36>/Constant'
27686 */
27687 L4_MABX_B.Reshape_a5[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_d[0];
27688 L4_MABX_B.Reshape_a5[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_d[1];
27689
27690 /* UnitDelay: '<S36>/Unit_Delay' */
27691 L4_MABX_B.Unit_Delay_g = L4_MABX_DW.Unit_Delay_DSTATE_je;
27692
27693 /* UnitDelay: '<S37>/Unit Delay' */
27694 L4_MABX_B.UnitDelay_b = L4_MABX_DW.UnitDelay_DSTATE_b;
27695
27696 /* Switch: '<S40>/Switch1' incorporates:
27697 * Constant: '<S37>/E'
27698 * Constant: '<S37>/IV'
27699 * Switch: '<S39>/Switch1'
27700 */
27701 if (L4_MABX_B.Unit_Delay_g) {
27702 L4_MABX_B.Switch1_iy = L4_MABX_P.IV_Value_e;
27703 } else {
27704 if (L4_MABX_P.E_Value_l) {
27705 /* Sum: '<S37>/Subtract' incorporates:
27706 * Constant: '<S37>/Constant'
27707 * Switch: '<S39>/Switch1'
27708 */
27709 q0 = L4_MABX_P.Constant_Value_ae;
27710 qY = q0 + L4_MABX_B.UnitDelay_b;
27711 if (qY < q0) {
27712 qY = MAX_uint32_T;
27713 }
27714
27715 L4_MABX_B.Subtract_nc = qY;
27716
27717 /* End of Sum: '<S37>/Subtract' */
27718
27719 /* Switch: '<S39>/Switch1' */
27720 L4_MABX_B.Switch1_hm = L4_MABX_B.Subtract_nc;
27721 } else {
27722 /* Switch: '<S39>/Switch1' */
27723 L4_MABX_B.Switch1_hm = L4_MABX_B.UnitDelay_b;
27724 }
27725
27726 L4_MABX_B.Switch1_iy = L4_MABX_B.Switch1_hm;
27727 }
27728
27729 /* End of Switch: '<S40>/Switch1' */
27730
27731 /* Selector: '<S36>/Selector' */
27732 L4_MABX_B.Selector_b = L4_MABX_B.Reshape_a5[(int32_T)L4_MABX_B.Switch1_iy -
27733 1];
27734
27735 /* Outputs for Triggered SubSystem: '<S12>/CAN_TYPE1_BOR_M1_C2' incorporates:
27736 * TriggerPort: '<S35>/Trigger'
27737 */
27738 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE == POS_ZCSIG) !=
27739 (int32_T)L4_MABX_B.Selector_b) &&
27740 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE !=
27741 UNINITIALIZED_ZCSIG));
27742 if (zcEvent) {
27743 /* S-Function (rti_commonblock): '<S35>/S-Function1' */
27744 /* This comment workarounds a code generation problem */
27745
27746 /* dSPACE RTICAN Bus Off Recovery block */
27747 /* ... Perform software-reset of the CAN microcontroller */
27748 {
27749 UInt32 loop_counter, memory;
27750 loop_counter = 0;
27751 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_BOff_return
27752 (can_type1_channel_M1_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27753 loop_counter++;
27754 if (loop_counter > MAX_LOOP) {
27755 memory = rtican_type1_error_level;
27756 rtican_type1_error_level = 1;
27757 rtican_type1_tq_err_sig(0, 0);
27758 rtican_type1_error_level = memory;
27759 break;
27760 }
27761 }
27762
27763 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_all_wakeup
27764 (can_type1_channel_M1_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27765 loop_counter++;
27766 if (loop_counter > MAX_LOOP) {
27767 memory = rtican_type1_error_level;
27768 rtican_type1_error_level = 1;
27769 rtican_type1_tq_err_sig(0, 0);
27770 rtican_type1_error_level = memory;
27771 break;
27772 }
27773 }
27774 }
27775 }
27776
27777 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE = L4_MABX_B.Selector_b;
27778
27779 /* End of Outputs for SubSystem: '<S12>/CAN_TYPE1_BOR_M1_C2' */
27780
27781 /* RelationalOperator: '<S38>/Operator' */
27782 L4_MABX_B.Operator_bsv = (L4_MABX_B.Switch1_iy == L4_MABX_ConstB.Width_g);
27783 }
27784
27785 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
27786 /* user code (Output function Trailer for TID5) */
27787
27788 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27789 /* EventChannel: 0 */
27790 if (tid == 0) {
27791 DSXCP_service(0);
27792 }
27793
27794 /* If subsystem generates rate grouping Output functions,
27795 * when tid is used in Output function for one rate,
27796 * all Output functions include tid as a local variable.
27797 * As result, some Output functions may have unused tid.
27798 */
27799 UNUSED_PARAMETER(tid);
27800}
27801
27802/* Model update function for TID5 */
27803void L4_MABX_update5(void) /* Sample time: [0.5s, 0.0s] */
27804{
27805 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' incorporates:
27806 * EnablePort: '<S11>/Enable'
27807 */
27808 if (L4_MABX_B.Operator_eu) {
27809 /* Update for UnitDelay: '<S30>/Unit_Delay' */
27810 L4_MABX_DW.Unit_Delay_DSTATE_f1 = L4_MABX_B.Operator_f5e;
27811
27812 /* Update for UnitDelay: '<S31>/Unit Delay' */
27813 L4_MABX_DW.UnitDelay_DSTATE_j = L4_MABX_B.Switch1_o;
27814 }
27815
27816 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
27817
27818 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' incorporates:
27819 * EnablePort: '<S15>/Enable'
27820 */
27821 if (L4_MABX_B.Operator_ms) {
27822 /* Update for UnitDelay: '<S54>/Unit_Delay' */
27823 L4_MABX_DW.Unit_Delay_DSTATE_i5 = L4_MABX_B.Operator_ho;
27824
27825 /* Update for UnitDelay: '<S55>/Unit Delay' */
27826 L4_MABX_DW.UnitDelay_DSTATE_p = L4_MABX_B.Switch1_k;
27827 }
27828
27829 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
27830
27831 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' incorporates:
27832 * EnablePort: '<S16>/Enable'
27833 */
27834 if (L4_MABX_B.Operator_fv) {
27835 /* Update for UnitDelay: '<S60>/Unit_Delay' */
27836 L4_MABX_DW.Unit_Delay_DSTATE_l5 = L4_MABX_B.Operator_bgt;
27837
27838 /* Update for UnitDelay: '<S61>/Unit Delay' */
27839 L4_MABX_DW.UnitDelay_DSTATE_dr = L4_MABX_B.Switch1_h;
27840 }
27841
27842 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
27843
27844 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' incorporates:
27845 * EnablePort: '<S13>/Enable'
27846 */
27847 if (L4_MABX_B.Operator_bs) {
27848 /* Update for UnitDelay: '<S42>/Unit_Delay' */
27849 L4_MABX_DW.Unit_Delay_DSTATE_h41 = L4_MABX_B.Operator_dhn;
27850
27851 /* Update for UnitDelay: '<S43>/Unit Delay' */
27852 L4_MABX_DW.UnitDelay_DSTATE_dr4 = L4_MABX_B.Switch1_k4;
27853 }
27854
27855 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
27856
27857 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' incorporates:
27858 * EnablePort: '<S14>/Enable'
27859 */
27860 if (L4_MABX_B.Operator_bw) {
27861 /* Update for UnitDelay: '<S48>/Unit_Delay' */
27862 L4_MABX_DW.Unit_Delay_DSTATE_mq = L4_MABX_B.Operator_ou;
27863
27864 /* Update for UnitDelay: '<S49>/Unit Delay' */
27865 L4_MABX_DW.UnitDelay_DSTATE_h = L4_MABX_B.Switch1_e;
27866 }
27867
27868 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
27869
27870 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' incorporates:
27871 * EnablePort: '<S12>/Enable'
27872 */
27873 if (L4_MABX_B.Operator_eb) {
27874 /* Update for UnitDelay: '<S36>/Unit_Delay' */
27875 L4_MABX_DW.Unit_Delay_DSTATE_je = L4_MABX_B.Operator_bsv;
27876
27877 /* Update for UnitDelay: '<S37>/Unit Delay' */
27878 L4_MABX_DW.UnitDelay_DSTATE_b = L4_MABX_B.Switch1_iy;
27879 }
27880
27881 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
27882}
27883
27884/* Model output function for TID6 */
27885void L4_MABX_output6(void) /* Sample time: [1.0s, 0.0s] */
27886{
27887 int_T tid = 6;
27888
27889 /* Outputs for Atomic SubSystem: '<S851>/CAN_TX_1000ms' */
27890
27891 /* DataTypeConversion: '<S863>/Data Type Conversion' incorporates:
27892 * Constant: '<S854>/Constant2'
27893 */
27894 L4_MABX_B.DataTypeConversion_fb = (uint8_T)L4_MABX_P.Constant2_Value_njy;
27895
27896 /* S-Function (sfix_bitop): '<S868>/Operator' */
27897 L4_MABX_B.Operator_n1 = (uint8_T)(L4_MABX_B.DataTypeConversion_fb &
27898 L4_MABX_P.Operator_BitMask);
27899
27900 /* DataTypeConversion: '<S868>/DataType' */
27901 L4_MABX_B.DataType_c2 = L4_MABX_B.Operator_n1;
27902
27903 /* ArithShift: '<S863>/Shift_Arithmetic 2' */
27904 L4_MABX_B.Shift_Arithmetic2_i = ldexp(L4_MABX_B.DataType_c2, (-3));
27905
27906 /* DataTypeConversion: '<S863>/Data Type Conversion5' */
27907 L4_MABX_B.DataTypeConversion5_g = (L4_MABX_B.Shift_Arithmetic2_i != 0.0);
27908
27909 /* Outputs for Enabled SubSystem: '<S871>/AIR1' incorporates:
27910 * EnablePort: '<S872>/Enable'
27911 */
27912 if (L4_MABX_B.DataTypeConversion5_g) {
27913 /* S-Function (rti_commonblock): '<S872>/S-Function1' */
27914 /* This comment workarounds a code generation problem */
27915
27916 /* dSPACE RTICAN TX Message Block: "AIR1" Id:419343921 */
27917 {
27918 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
27919
27920 Float32 delayTime = 0.0;
27921
27922 /* ... Read status and timestamp info (previous message) */
27923 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]);
27924
27925 /* Convert timestamp */
27926 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->processed) {
27927 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp =
27928 rtk_dsts_time_to_simtime_convert
27929 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp);
27930 }
27931
27932 /* Messages with timestamp zero have been received in pause/stop state
27933 and must not be handled.
27934 */
27935 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp > 0.0) {
27936 L4_MABX_B.SFunction1_o1_d4 = (real_T)
27937 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->processed;
27938 L4_MABX_B.SFunction1_o2_gg = (real_T)
27939 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp;
27940 L4_MABX_B.SFunction1_o3_nm = (real_T)
27941 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->deltatime;
27942 L4_MABX_B.SFunction1_o4_lk = (real_T)
27943 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->delaytime;
27944 }
27945
27946 /* ... Encode Simulink signals of TX and RM blocks*/
27947 {
27948 rtican_Signal_t CAN_Sgn;
27949
27950 /* ...... "PneumaticSupplyPress" (0|8, standard signal, unsigned int, little endian) */
27951 /* Add or substract 0.5 in order to round to nearest integer */
27952 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PneumaticSupplyPress - ( 0 )
27953 ) / 8 + 0.5);
27954 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27955 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
27956
27957 /* ...... "ParkingAnd_orTrailerAirPress" (8|8, standard signal, unsigned int, little endian) */
27958 /* Add or substract 0.5 in order to round to nearest integer */
27959 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingAnd_orTrailerAirPress
27960 - ( 0 ) ) / 8 + 0.5);
27961 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27962 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
27963
27964 /* ...... "ServiceBrakeCircuit1AirPress" (16|8, standard signal, unsigned int, little endian) */
27965 /* Add or substract 0.5 in order to round to nearest integer */
27966 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ServiceBrakeCircuit1AirPress
27967 - ( 0 ) ) / 8 + 0.5);
27968 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27969 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
27970
27971 /* ...... "ServiceBrakeCircuit2AirPress" (24|8, standard signal, unsigned int, little endian) */
27972 /* Add or substract 0.5 in order to round to nearest integer */
27973 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ServiceBrakeCircuit2AirPress
27974 - ( 0 ) ) / 8 + 0.5);
27975 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27976 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
27977
27978 /* ...... "AuxEquipmentSupplyPress" (32|8, standard signal, unsigned int, little endian) */
27979 /* Add or substract 0.5 in order to round to nearest integer */
27980 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AuxEquipmentSupplyPress -
27981 ( 0 ) ) / 8 + 0.5);
27982 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27983 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
27984
27985 /* ...... "AirSuspensionSupplyPress" (40|8, standard signal, unsigned int, little endian) */
27986 /* Add or substract 0.5 in order to round to nearest integer */
27987 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AirSuspensionSupplyPress - (
27988 0 ) ) / 8 + 0.5);
27989 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27990 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
27991
27992 /* ...... "AirCompressorStatus" (48|2, standard signal, unsigned int, little endian) */
27993 /* Add or substract 0.5 in order to round to nearest integer */
27994 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AirCompressorStatus ) + 0.5);
27995 CAN_Sgn.UnsignedSgn &= 0x00000003;
27996 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
27997
27998 /* ...... "PowertrainCircuitAirSupplyPress" (56|8, standard signal, unsigned int, little endian) */
27999 /* Add or substract 0.5 in order to round to nearest integer */
28000 CAN_Sgn.UnsignedSgn = (UInt32)
28001 (( L4_MABX_B.PowertrainCircuitAirSupplyPress - ( 0 ) ) / 8 + 0.5);
28002 CAN_Sgn.UnsignedSgn &= 0x000000FF;
28003 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
28004 }
28005
28006 /* mask unused bits with '1' */
28007 CAN_Msg[6] |= 0xFC;
28008
28009 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
28010 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31], 8,
28011 &(CAN_Msg[0]), delayTime);
28012 }
28013 }
28014
28015 /* End of Outputs for SubSystem: '<S871>/AIR1' */
28016
28017 /* S-Function (sfix_bitop): '<S865>/Operator' */
28018 L4_MABX_B.Operator_ivl = (uint8_T)(L4_MABX_B.DataTypeConversion_fb &
28019 L4_MABX_P.Operator_BitMask_m);
28020
28021 /* DataTypeConversion: '<S865>/DataType' */
28022 L4_MABX_B.DataType_on = L4_MABX_B.Operator_ivl;
28023
28024 /* S-Function (sfix_bitop): '<S866>/Operator' */
28025 L4_MABX_B.Operator_pw = (uint8_T)(L4_MABX_B.DataTypeConversion_fb &
28026 L4_MABX_P.Operator_BitMask_o);
28027
28028 /* DataTypeConversion: '<S866>/DataType' */
28029 L4_MABX_B.DataType_m2 = L4_MABX_B.Operator_pw;
28030
28031 /* S-Function (sfix_bitop): '<S867>/Operator' */
28032 L4_MABX_B.Operator_p4 = (uint8_T)(L4_MABX_B.DataTypeConversion_fb &
28033 L4_MABX_P.Operator_BitMask_k);
28034
28035 /* DataTypeConversion: '<S867>/DataType' */
28036 L4_MABX_B.DataType_cn = L4_MABX_B.Operator_p4;
28037
28038 /* S-Function (sfix_bitop): '<S869>/Operator' */
28039 L4_MABX_B.Operator_mho = (uint8_T)(L4_MABX_B.DataTypeConversion_fb &
28040 L4_MABX_P.Operator_BitMask_kw);
28041
28042 /* DataTypeConversion: '<S869>/DataType' */
28043 L4_MABX_B.DataType_jg = L4_MABX_B.Operator_mho;
28044
28045 /* S-Function (sfix_bitop): '<S870>/Operator' */
28046 L4_MABX_B.Operator_el = (uint8_T)(L4_MABX_B.DataTypeConversion_fb &
28047 L4_MABX_P.Operator_BitMask_b);
28048
28049 /* DataTypeConversion: '<S870>/DataType' */
28050 L4_MABX_B.DataType_gy = L4_MABX_B.Operator_el;
28051
28052 /* DataTypeConversion: '<S863>/Data Type Conversion2' */
28053 L4_MABX_B.DataTypeConversion2_et = (L4_MABX_B.DataType_on != 0);
28054
28055 /* ArithShift: '<S863>/Shift_Arithmetic ' */
28056 L4_MABX_B.Shift_Arithmetic_ea = ldexp(L4_MABX_B.DataType_m2, (-1));
28057
28058 /* DataTypeConversion: '<S863>/Data Type Conversion3' */
28059 L4_MABX_B.DataTypeConversion3_fn = (L4_MABX_B.Shift_Arithmetic_ea != 0.0);
28060
28061 /* ArithShift: '<S863>/Shift_Arithmetic 1' */
28062 L4_MABX_B.Shift_Arithmetic1_b = ldexp(L4_MABX_B.DataType_cn, (-2));
28063
28064 /* DataTypeConversion: '<S863>/Data Type Conversion4' */
28065 L4_MABX_B.DataTypeConversion4_hs = (L4_MABX_B.Shift_Arithmetic1_b != 0.0);
28066
28067 /* ArithShift: '<S863>/Shift_Arithmetic 3' */
28068 L4_MABX_B.Shift_Arithmetic3_h = ldexp(L4_MABX_B.DataType_jg, (-4));
28069
28070 /* DataTypeConversion: '<S863>/Data Type Conversion6' */
28071 L4_MABX_B.DataTypeConversion6_fg = (L4_MABX_B.Shift_Arithmetic3_h != 0.0);
28072
28073 /* ArithShift: '<S863>/Shift_Arithmetic 4' */
28074 L4_MABX_B.Shift_Arithmetic4_j = ldexp(L4_MABX_B.DataType_gy, (-5));
28075
28076 /* DataTypeConversion: '<S863>/Data Type Conversion7' */
28077 L4_MABX_B.DataTypeConversion7_l5 = (L4_MABX_B.Shift_Arithmetic4_j != 0.0);
28078
28079 /* DataTypeConversion: '<S864>/Data Type Conversion' incorporates:
28080 * Constant: '<S854>/Constant1'
28081 */
28082 L4_MABX_B.DataTypeConversion_fh = (uint8_T)L4_MABX_P.Constant1_Value_jr;
28083
28084 /* S-Function (sfix_bitop): '<S876>/Operator' */
28085 L4_MABX_B.Operator_ez = (uint8_T)(L4_MABX_B.DataTypeConversion_fh &
28086 L4_MABX_P.Operator_BitMask_f);
28087
28088 /* DataTypeConversion: '<S876>/DataType' */
28089 L4_MABX_B.DataType_pi = L4_MABX_B.Operator_ez;
28090
28091 /* ArithShift: '<S864>/Shift_Arithmetic 2' */
28092 L4_MABX_B.Shift_Arithmetic2_ie = ldexp(L4_MABX_B.DataType_pi, (-3));
28093
28094 /* DataTypeConversion: '<S864>/Data Type Conversion5' */
28095 L4_MABX_B.DataTypeConversion5_c = (L4_MABX_B.Shift_Arithmetic2_ie != 0.0);
28096
28097 /* Outputs for Enabled SubSystem: '<S879>/AMB' incorporates:
28098 * EnablePort: '<S880>/Enable'
28099 */
28100 if (L4_MABX_B.DataTypeConversion5_c) {
28101 /* S-Function (rti_commonblock): '<S880>/S-Function1' */
28102 /* This comment workarounds a code generation problem */
28103
28104 /* dSPACE RTICAN TX Message Block: "AMB" Id:419362048 */
28105 {
28106 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
28107
28108 Float32 delayTime = 0.0;
28109
28110 /* ... Read status and timestamp info (previous message) */
28111 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]);
28112
28113 /* Convert timestamp */
28114 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->processed) {
28115 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp =
28116 rtk_dsts_time_to_simtime_convert
28117 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp);
28118 }
28119
28120 /* Messages with timestamp zero have been received in pause/stop state
28121 and must not be handled.
28122 */
28123 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp > 0.0) {
28124 L4_MABX_B.SFunction1_o1_j = (real_T)
28125 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->processed;
28126 L4_MABX_B.SFunction1_o2_bi = (real_T)
28127 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp;
28128 L4_MABX_B.SFunction1_o3_fi = (real_T)
28129 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->deltatime;
28130 L4_MABX_B.SFunction1_o4_bt = (real_T)
28131 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->delaytime;
28132 }
28133
28134 /* ... Encode Simulink signals of TX and RM blocks*/
28135 {
28136 rtican_Signal_t CAN_Sgn;
28137
28138 /* ...... "BarometricPress" (0|8, standard signal, unsigned int, little endian) */
28139 /* Add or substract 0.5 in order to round to nearest integer */
28140 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BarometricPress_b - ( 0 ) ) /
28141 0.5 + 0.5);
28142 CAN_Sgn.UnsignedSgn &= 0x000000FF;
28143 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
28144
28145 /* ...... "CabInteriorTemp" (8|16, standard signal, unsigned int, little endian) */
28146 /* Add or substract 0.5 in order to round to nearest integer */
28147 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CabInteriorTemp - ( -273 ) )
28148 / 0.03125 + 0.5);
28149 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
28150 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
28151 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
28152
28153 /* ...... "AmbientAirTemp" (24|16, standard signal, unsigned int, little endian) */
28154 /* Add or substract 0.5 in order to round to nearest integer */
28155 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AmbientAirTemp_i - ( -273 ) )
28156 / 0.03125 + 0.5);
28157 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
28158 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
28159 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
28160
28161 /* ...... "EngAirIntakeTemp" (40|8, standard signal, unsigned int, little endian) */
28162 /* Add or substract 0.5 in order to round to nearest integer */
28163 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.EngAirIntakeTemp - ( -40 ) +
28164 0.5);
28165 CAN_Sgn.UnsignedSgn &= 0x000000FF;
28166 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
28167
28168 /* ...... "RoadSurfaceTemp" (48|16, standard signal, unsigned int, little endian) */
28169 /* Add or substract 0.5 in order to round to nearest integer */
28170 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.RoadSurfaceTemp - ( -273 ) )
28171 / 0.03125 + 0.5);
28172 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
28173 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
28174 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte1;
28175 }
28176
28177 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
28178 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500], 8,
28179 &(CAN_Msg[0]), delayTime);
28180 }
28181 }
28182
28183 /* End of Outputs for SubSystem: '<S879>/AMB' */
28184
28185 /* S-Function (sfix_bitop): '<S873>/Operator' */
28186 L4_MABX_B.Operator_pd = (uint8_T)(L4_MABX_B.DataTypeConversion_fh &
28187 L4_MABX_P.Operator_BitMask_j);
28188
28189 /* DataTypeConversion: '<S873>/DataType' */
28190 L4_MABX_B.DataType_pf = L4_MABX_B.Operator_pd;
28191
28192 /* S-Function (sfix_bitop): '<S874>/Operator' */
28193 L4_MABX_B.Operator_gc = (uint8_T)(L4_MABX_B.DataTypeConversion_fh &
28194 L4_MABX_P.Operator_BitMask_d);
28195
28196 /* DataTypeConversion: '<S874>/DataType' */
28197 L4_MABX_B.DataType_jv = L4_MABX_B.Operator_gc;
28198
28199 /* S-Function (sfix_bitop): '<S875>/Operator' */
28200 L4_MABX_B.Operator_he = (uint8_T)(L4_MABX_B.DataTypeConversion_fh &
28201 L4_MABX_P.Operator_BitMask_ob);
28202
28203 /* DataTypeConversion: '<S875>/DataType' */
28204 L4_MABX_B.DataType_i = L4_MABX_B.Operator_he;
28205
28206 /* S-Function (sfix_bitop): '<S877>/Operator' */
28207 L4_MABX_B.Operator_p5 = (uint8_T)(L4_MABX_B.DataTypeConversion_fh &
28208 L4_MABX_P.Operator_BitMask_a);
28209
28210 /* DataTypeConversion: '<S877>/DataType' */
28211 L4_MABX_B.DataType_a = L4_MABX_B.Operator_p5;
28212
28213 /* S-Function (sfix_bitop): '<S878>/Operator' */
28214 L4_MABX_B.Operator_fm = (uint8_T)(L4_MABX_B.DataTypeConversion_fh &
28215 L4_MABX_P.Operator_BitMask_fx);
28216
28217 /* DataTypeConversion: '<S878>/DataType' */
28218 L4_MABX_B.DataType_n = L4_MABX_B.Operator_fm;
28219
28220 /* DataTypeConversion: '<S864>/Data Type Conversion2' */
28221 L4_MABX_B.DataTypeConversion2_ln = (L4_MABX_B.DataType_pf != 0);
28222
28223 /* ArithShift: '<S864>/Shift_Arithmetic ' */
28224 L4_MABX_B.Shift_Arithmetic_d2 = ldexp(L4_MABX_B.DataType_jv, (-1));
28225
28226 /* DataTypeConversion: '<S864>/Data Type Conversion3' */
28227 L4_MABX_B.DataTypeConversion3_n2 = (L4_MABX_B.Shift_Arithmetic_d2 != 0.0);
28228
28229 /* ArithShift: '<S864>/Shift_Arithmetic 1' */
28230 L4_MABX_B.Shift_Arithmetic1_h = ldexp(L4_MABX_B.DataType_i, (-2));
28231
28232 /* DataTypeConversion: '<S864>/Data Type Conversion4' */
28233 L4_MABX_B.DataTypeConversion4_fm = (L4_MABX_B.Shift_Arithmetic1_h != 0.0);
28234
28235 /* ArithShift: '<S864>/Shift_Arithmetic 3' */
28236 L4_MABX_B.Shift_Arithmetic3_cz = ldexp(L4_MABX_B.DataType_a, (-4));
28237
28238 /* DataTypeConversion: '<S864>/Data Type Conversion6' */
28239 L4_MABX_B.DataTypeConversion6_cu = (L4_MABX_B.Shift_Arithmetic3_cz != 0.0);
28240
28241 /* ArithShift: '<S864>/Shift_Arithmetic 4' */
28242 L4_MABX_B.Shift_Arithmetic4_l = ldexp(L4_MABX_B.DataType_n, (-5));
28243
28244 /* DataTypeConversion: '<S864>/Data Type Conversion7' */
28245 L4_MABX_B.DataTypeConversion7_gn = (L4_MABX_B.Shift_Arithmetic4_l != 0.0);
28246
28247 /* End of Outputs for SubSystem: '<S851>/CAN_TX_1000ms' */
28248 /* user code (Output function Trailer for TID6) */
28249
28250 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
28251 /* EventChannel: 0 */
28252 if (tid == 0) {
28253 DSXCP_service(0);
28254 }
28255
28256 /* If subsystem generates rate grouping Output functions,
28257 * when tid is used in Output function for one rate,
28258 * all Output functions include tid as a local variable.
28259 * As result, some Output functions may have unused tid.
28260 */
28261 UNUSED_PARAMETER(tid);
28262}
28263
28264/* Model update function for TID6 */
28265void L4_MABX_update6(void) /* Sample time: [1.0s, 0.0s] */
28266{
28267 /* (no update code required) */
28268}
28269
28270/* Model output function for TID7 */
28271void L4_MABX_output7(void) /* Sample time: [5.0s, 0.0s] */
28272{
28273 int_T tid = 7;
28274 int32_T i;
28275 uint16_T tmp;
28276 uint32_T q0;
28277 uint32_T qY;
28278
28279 /* Outputs for Atomic SubSystem: '<S851>/CAN_TX_5000ms' */
28280
28281 /* DataTypeConversion: '<S1042>/Data Type Conversion6' incorporates:
28282 * Constant: '<S1042>/Enable_TX_RequestDiagMsgFromREAX'
28283 */
28284 L4_MABX_B.DataTypeConversion6_ba = L4_MABX_P.Enable_TX_RequestDiagMsgFromREA;
28285
28286 /* Logic: '<S1046>/Operator' */
28287 L4_MABX_B.Operator_jf = (L4_MABX_B.DataTypeConversion6_ba &&
28288 L4_MABX_B.TmpRTBAtOperatorInport2);
28289
28290 /* DataTypeConversion: '<S1046>/DataType' */
28291 L4_MABX_B.DataType_ag4 = L4_MABX_B.Operator_jf;
28292
28293 /* Reshape: '<S1051>/Reshape' incorporates:
28294 * Constant: '<S1051>/Constant'
28295 */
28296 for (i = 0; i < 8; i++) {
28297 L4_MABX_B.Reshape[i] = L4_MABX_P.Repeating_Sequence_Stair_OutVal[i];
28298 }
28299
28300 /* End of Reshape: '<S1051>/Reshape' */
28301
28302 /* UnitDelay: '<S1051>/Unit_Delay' */
28303 L4_MABX_B.Unit_Delay_kh = L4_MABX_DW.Unit_Delay_DSTATE_m4;
28304
28305 /* UnitDelay: '<S1052>/Unit Delay' */
28306 L4_MABX_B.UnitDelay_mq = L4_MABX_DW.UnitDelay_DSTATE_a;
28307
28308 /* Switch: '<S1055>/Switch1' incorporates:
28309 * Constant: '<S1052>/E'
28310 * Constant: '<S1052>/IV'
28311 * Switch: '<S1054>/Switch1'
28312 */
28313 if (L4_MABX_B.Unit_Delay_kh) {
28314 L4_MABX_B.Switch1_mo = L4_MABX_P.IV_Value_ku;
28315 } else {
28316 if (L4_MABX_P.E_Value_k) {
28317 /* Sum: '<S1052>/Subtract' incorporates:
28318 * Constant: '<S1052>/Constant'
28319 * Switch: '<S1054>/Switch1'
28320 */
28321 q0 = L4_MABX_P.Constant_Value_ixr;
28322 qY = q0 + L4_MABX_B.UnitDelay_mq;
28323 if (qY < q0) {
28324 qY = MAX_uint32_T;
28325 }
28326
28327 L4_MABX_B.Subtract_a2 = qY;
28328
28329 /* End of Sum: '<S1052>/Subtract' */
28330
28331 /* Switch: '<S1054>/Switch1' */
28332 L4_MABX_B.Switch1_g = L4_MABX_B.Subtract_a2;
28333 } else {
28334 /* Switch: '<S1054>/Switch1' */
28335 L4_MABX_B.Switch1_g = L4_MABX_B.UnitDelay_mq;
28336 }
28337
28338 L4_MABX_B.Switch1_mo = L4_MABX_B.Switch1_g;
28339 }
28340
28341 /* End of Switch: '<S1055>/Switch1' */
28342
28343 /* Selector: '<S1051>/Selector' */
28344 L4_MABX_B.Selector = L4_MABX_B.Reshape[(int32_T)L4_MABX_B.Switch1_mo - 1];
28345
28346 /* DataTypeConversion: '<S1043>/Data Type Conversion' */
28347 L4_MABX_B.DataTypeConversion_ix = L4_MABX_B.Selector;
28348
28349 /* S-Function (sfix_bitop): '<S1048>/Operator' */
28350 L4_MABX_B.Operator = L4_MABX_B.DataTypeConversion_ix &
28351 L4_MABX_P.Operator_BitMask_nl;
28352
28353 /* DataTypeConversion: '<S1048>/DataType' */
28354 q0 = L4_MABX_B.Operator;
28355 if (q0 > 255U) {
28356 q0 = 255U;
28357 }
28358
28359 L4_MABX_B.DataType_ggj = (uint8_T)q0;
28360
28361 /* End of DataTypeConversion: '<S1048>/DataType' */
28362
28363 /* DataTypeConversion: '<S1043>/Data Type Conversion3' */
28364 L4_MABX_B.DataTypeConversion3_n = L4_MABX_B.DataType_ggj;
28365
28366 /* DataTypeConversion: '<S1045>/Data Type Conversion' */
28367 L4_MABX_B.DataTypeConversion_hy = L4_MABX_B.DataTypeConversion3_n;
28368
28369 /* S-Function (sfix_bitop): '<S1049>/Operator' */
28370 L4_MABX_B.Operator_o = L4_MABX_B.DataTypeConversion_ix &
28371 L4_MABX_P.Operator_BitMask_dp;
28372
28373 /* DataTypeConversion: '<S1049>/DataType' */
28374 q0 = L4_MABX_B.Operator_o;
28375 if (q0 > 65535U) {
28376 q0 = 65535U;
28377 }
28378
28379 L4_MABX_B.DataType_nv = (uint16_T)q0;
28380
28381 /* End of DataTypeConversion: '<S1049>/DataType' */
28382
28383 /* ArithShift: '<S1043>/Shift_Arithmetic ' */
28384 L4_MABX_B.Shift_Arithmetic_mi = (uint16_T)((uint32_T)L4_MABX_B.DataType_nv >>
28385 8);
28386
28387 /* DataTypeConversion: '<S1043>/Data Type Conversion1' */
28388 tmp = L4_MABX_B.Shift_Arithmetic_mi;
28389 if (tmp > 255) {
28390 tmp = 255U;
28391 }
28392
28393 L4_MABX_B.DataTypeConversion1_itp = (uint8_T)tmp;
28394
28395 /* End of DataTypeConversion: '<S1043>/Data Type Conversion1' */
28396
28397 /* DataTypeConversion: '<S1045>/Data Type Conversion1' */
28398 L4_MABX_B.DataTypeConversion1_b = L4_MABX_B.DataTypeConversion1_itp;
28399
28400 /* S-Function (sfix_bitop): '<S1050>/Operator' */
28401 L4_MABX_B.Operator_a = L4_MABX_B.DataTypeConversion_ix &
28402 L4_MABX_P.Operator_BitMask_mk;
28403
28404 /* DataTypeConversion: '<S1050>/DataType' */
28405 L4_MABX_B.DataType_aw = L4_MABX_B.Operator_a;
28406
28407 /* ArithShift: '<S1043>/Shift_Arithmetic 1' */
28408 L4_MABX_B.Shift_Arithmetic1_p = L4_MABX_B.DataType_aw >> 16;
28409
28410 /* DataTypeConversion: '<S1043>/Data Type Conversion2' */
28411 q0 = L4_MABX_B.Shift_Arithmetic1_p;
28412 if (q0 > 255U) {
28413 q0 = 255U;
28414 }
28415
28416 L4_MABX_B.DataTypeConversion2_aa = (uint8_T)q0;
28417
28418 /* End of DataTypeConversion: '<S1043>/Data Type Conversion2' */
28419
28420 /* DataTypeConversion: '<S1045>/Data Type Conversion2' */
28421 L4_MABX_B.DataTypeConversion2_pj = L4_MABX_B.DataTypeConversion2_aa;
28422
28423 /* Outputs for Enabled SubSystem: '<S1045>/RQST_13_E4' incorporates:
28424 * EnablePort: '<S1047>/Enable'
28425 */
28426 if (L4_MABX_B.DataType_ag4) {
28427 /* S-Function (rti_commonblock): '<S1047>/S-Function1' */
28428 /* This comment workarounds a code generation problem */
28429
28430 /* dSPACE RTICAN TX Message Block: "RQST_13_E4" Id:417993700 */
28431 {
28432 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
28433
28434 Float32 delayTime = 0.0;
28435
28436 /* ... Read status and timestamp info (previous message) */
28437 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]);
28438
28439 /* Convert timestamp */
28440 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->processed) {
28441 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp =
28442 rtk_dsts_time_to_simtime_convert
28443 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp);
28444 }
28445
28446 /* Messages with timestamp zero have been received in pause/stop state
28447 and must not be handled.
28448 */
28449 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp > 0.0) {
28450 L4_MABX_B.SFunction1_o1_f = (real_T)
28451 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->processed;
28452 L4_MABX_B.SFunction1_o2_g = (real_T)
28453 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp;
28454 L4_MABX_B.SFunction1_o3_k = (real_T)
28455 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->deltatime;
28456 L4_MABX_B.SFunction1_o4_pd = (real_T)
28457 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->delaytime;
28458 }
28459
28460 /* ... Encode Simulink signals of TX and RM blocks*/
28461 {
28462 rtican_Signal_t CAN_Sgn;
28463
28464 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
28465 /* Add or substract 0.5 in order to round to nearest integer */
28466 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_hy ) +
28467 0.5);
28468 CAN_Sgn.UnsignedSgn &= 0x000000FF;
28469 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
28470
28471 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
28472 /* Add or substract 0.5 in order to round to nearest integer */
28473 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b ) +
28474 0.5);
28475 CAN_Sgn.UnsignedSgn &= 0x000000FF;
28476 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
28477
28478 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
28479 /* Add or substract 0.5 in order to round to nearest integer */
28480 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_pj ) +
28481 0.5);
28482 CAN_Sgn.UnsignedSgn &= 0x000000FF;
28483 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
28484 }
28485
28486 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
28487 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4], 8,
28488 &(CAN_Msg[0]), delayTime);
28489 }
28490 }
28491
28492 /* End of Outputs for SubSystem: '<S1045>/RQST_13_E4' */
28493
28494 /* RelationalOperator: '<S1053>/Operator' */
28495 L4_MABX_B.Operator_kh = (L4_MABX_B.Switch1_mo == L4_MABX_B.Width);
28496
28497 /* End of Outputs for SubSystem: '<S851>/CAN_TX_5000ms' */
28498 /* user code (Output function Trailer for TID7) */
28499
28500 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
28501 /* EventChannel: 0 */
28502 if (tid == 0) {
28503 DSXCP_service(0);
28504 }
28505
28506 /* If subsystem generates rate grouping Output functions,
28507 * when tid is used in Output function for one rate,
28508 * all Output functions include tid as a local variable.
28509 * As result, some Output functions may have unused tid.
28510 */
28511 UNUSED_PARAMETER(tid);
28512}
28513
28514/* Model update function for TID7 */
28515void L4_MABX_update7(void) /* Sample time: [5.0s, 0.0s] */
28516{
28517 /* Update for Atomic SubSystem: '<S851>/CAN_TX_5000ms' */
28518
28519 /* Update for UnitDelay: '<S1051>/Unit_Delay' */
28520 L4_MABX_DW.Unit_Delay_DSTATE_m4 = L4_MABX_B.Operator_kh;
28521
28522 /* Update for UnitDelay: '<S1052>/Unit Delay' */
28523 L4_MABX_DW.UnitDelay_DSTATE_a = L4_MABX_B.Switch1_mo;
28524
28525 /* End of Update for SubSystem: '<S851>/CAN_TX_5000ms' */
28526}
28527
28528/* Model output function for TID8 */
28529void L4_MABX_output8(void) /* Sample time: [10.0s, 0.0s] */
28530{
28531 int_T tid = 8;
28532
28533 /* user code (Output function Trailer for TID8) */
28534
28535 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
28536 /* EventChannel: 0 */
28537 if (tid == 0) {
28538 DSXCP_service(0);
28539 }
28540
28541 /* If subsystem generates rate grouping Output functions,
28542 * when tid is used in Output function for one rate,
28543 * all Output functions include tid as a local variable.
28544 * As result, some Output functions may have unused tid.
28545 */
28546 UNUSED_PARAMETER(tid);
28547}
28548
28549/* Model update function for TID8 */
28550void L4_MABX_update8(void) /* Sample time: [10.0s, 0.0s] */
28551{
28552 /* (no update code required) */
28553}
28554
28555/* Model output wrapper function for compatibility with a static main program */
28556void L4_MABX_output(int_T tid)
28557{
28558 switch (tid) {
28559 case 0 :
28560 L4_MABX_output0();
28561 break;
28562
28563 case 1 :
28564 L4_MABX_output1();
28565 break;
28566
28567 case 2 :
28568 L4_MABX_output2();
28569 break;
28570
28571 case 3 :
28572 L4_MABX_output3();
28573 break;
28574
28575 case 4 :
28576 L4_MABX_output4();
28577 break;
28578
28579 case 5 :
28580 L4_MABX_output5();
28581 break;
28582
28583 case 6 :
28584 L4_MABX_output6();
28585 break;
28586
28587 case 7 :
28588 L4_MABX_output7();
28589 break;
28590
28591 case 8 :
28592 L4_MABX_output8();
28593 break;
28594
28595 default :
28596 break;
28597 }
28598}
28599
28600/* Model update wrapper function for compatibility with a static main program */
28601void L4_MABX_update(int_T tid)
28602{
28603 switch (tid) {
28604 case 0 :
28605 L4_MABX_update0();
28606 break;
28607
28608 case 1 :
28609 L4_MABX_update1();
28610 break;
28611
28612 case 2 :
28613 L4_MABX_update2();
28614 break;
28615
28616 case 3 :
28617 L4_MABX_update3();
28618 break;
28619
28620 case 4 :
28621 L4_MABX_update4();
28622 break;
28623
28624 case 5 :
28625 L4_MABX_update5();
28626 break;
28627
28628 case 6 :
28629 L4_MABX_update6();
28630 break;
28631
28632 case 7 :
28633 L4_MABX_update7();
28634 break;
28635
28636 case 8 :
28637 L4_MABX_update8();
28638 break;
28639
28640 default :
28641 break;
28642 }
28643}
28644
28645/* Model initialize function */
28646void L4_MABX_initialize(void)
28647{
28648 /* Registration code */
28649
28650 /* initialize non-finites */
28651 rt_InitInfAndNaN(sizeof(real_T));
28652
28653 /* non-finite (run-time) assignments */
28654 L4_MABX_P.Saturation_UpperSat = rtInf;
28655 L4_MABX_P.Saturation_UpperSat_o = rtInf;
28656 L4_MABX_P.Saturation_UpperSat_f = rtInf;
28657 L4_MABX_P.Saturation1_UpperSat_j = rtInf;
28658 L4_MABX_P.Saturation_UpperSat_l = rtInf;
28659 L4_MABX_P.Saturation_UpperSat_o1 = rtInf;
28660 L4_MABX_P.Saturation_UpperSat_d = rtInf;
28661 L4_MABX_P.Saturation_UpperSat_ok = rtInf;
28662 L4_MABX_P.Saturation_UpperSat_g = rtInf;
28663 L4_MABX_P.Saturation_UpperSat_c = rtInf;
28664 L4_MABX_P.Calculate_D_term_h.Saturation_UpperSat = rtInf;
28665 L4_MABX_P.Calculate_D_term_p.Saturation_UpperSat = rtInf;
28666 L4_MABX_P.Calculate_D_term.Saturation_UpperSat = rtInf;
28667
28668 /* initialize real-time model */
28669 (void) memset((void *)L4_MABX_M, 0,
28670 sizeof(RT_MODEL_L4_MABX_T));
28671 (L4_MABX_M)->Timing.TaskCounters.cLimit[0] = 1;
28672 (L4_MABX_M)->Timing.TaskCounters.cLimit[1] = 2;
28673 (L4_MABX_M)->Timing.TaskCounters.cLimit[2] = 5;
28674 (L4_MABX_M)->Timing.TaskCounters.cLimit[3] = 10;
28675 (L4_MABX_M)->Timing.TaskCounters.cLimit[4] = 25;
28676 (L4_MABX_M)->Timing.TaskCounters.cLimit[5] = 50;
28677 (L4_MABX_M)->Timing.TaskCounters.cLimit[6] = 100;
28678 (L4_MABX_M)->Timing.TaskCounters.cLimit[7] = 500;
28679 (L4_MABX_M)->Timing.TaskCounters.cLimit[8] = 1000;
28680 rtsiSetSolverName(&L4_MABX_M->solverInfo,"FixedStepDiscrete");
28681 L4_MABX_M->solverInfoPtr = (&L4_MABX_M->solverInfo);
28682
28683 /* Initialize timing info */
28684 {
28685 int_T *mdlTsMap = L4_MABX_M->Timing.sampleTimeTaskIDArray;
28686 int_T i;
28687 for (i = 0; i < 9; i++) {
28688 mdlTsMap[i] = i;
28689 }
28690
28691 L4_MABX_M->Timing.sampleTimeTaskIDPtr = (&mdlTsMap[0]);
28692 L4_MABX_M->Timing.sampleTimes = (&L4_MABX_M->Timing.sampleTimesArray[0]);
28693 L4_MABX_M->Timing.offsetTimes = (&L4_MABX_M->Timing.offsetTimesArray[0]);
28694
28695 /* task periods */
28696 L4_MABX_M->Timing.sampleTimes[0] = (0.01);
28697 L4_MABX_M->Timing.sampleTimes[1] = (0.02);
28698 L4_MABX_M->Timing.sampleTimes[2] = (0.05);
28699 L4_MABX_M->Timing.sampleTimes[3] = (0.1);
28700 L4_MABX_M->Timing.sampleTimes[4] = (0.25);
28701 L4_MABX_M->Timing.sampleTimes[5] = (0.5);
28702 L4_MABX_M->Timing.sampleTimes[6] = (1.0);
28703 L4_MABX_M->Timing.sampleTimes[7] = (5.0);
28704 L4_MABX_M->Timing.sampleTimes[8] = (10.0);
28705
28706 /* task offsets */
28707 L4_MABX_M->Timing.offsetTimes[0] = (0.0);
28708 L4_MABX_M->Timing.offsetTimes[1] = (0.0);
28709 L4_MABX_M->Timing.offsetTimes[2] = (0.0);
28710 L4_MABX_M->Timing.offsetTimes[3] = (0.0);
28711 L4_MABX_M->Timing.offsetTimes[4] = (0.0);
28712 L4_MABX_M->Timing.offsetTimes[5] = (0.0);
28713 L4_MABX_M->Timing.offsetTimes[6] = (0.0);
28714 L4_MABX_M->Timing.offsetTimes[7] = (0.0);
28715 L4_MABX_M->Timing.offsetTimes[8] = (0.0);
28716 }
28717
28718 rtmSetTPtr(L4_MABX_M, &L4_MABX_M->Timing.tArray[0]);
28719
28720 {
28721 int_T *mdlSampleHits = L4_MABX_M->Timing.sampleHitArray;
28722 int_T *mdlPerTaskSampleHits = L4_MABX_M->Timing.perTaskSampleHitsArray;
28723 L4_MABX_M->Timing.perTaskSampleHits = (&mdlPerTaskSampleHits[0]);
28724 mdlSampleHits[0] = 1;
28725 L4_MABX_M->Timing.sampleHits = (&mdlSampleHits[0]);
28726 }
28727
28728 rtmSetTFinal(L4_MABX_M, -1);
28729 L4_MABX_M->Timing.stepSize0 = 0.01;
28730 L4_MABX_M->Timing.stepSize9 = 2.3283064365386963E-10;
28731 L4_MABX_M->Timing.stepSize10 = 2.3283064365386963E-10;
28732 L4_MABX_M->Timing.stepSize11 = 2.3283064365386963E-10;
28733 L4_MABX_M->solverInfoPtr = (&L4_MABX_M->solverInfo);
28734 L4_MABX_M->Timing.stepSize = (0.01);
28735 rtsiSetFixedStepSize(&L4_MABX_M->solverInfo, 0.01);
28736 rtsiSetSolverMode(&L4_MABX_M->solverInfo, SOLVER_MODE_MULTITASKING);
28737
28738 /* block I/O */
28739 (void) memset(((void *) &L4_MABX_B), 0,
28740 sizeof(B_L4_MABX_T));
28741
28742 {
28743 L4_MABX_B.EPBPCMInhibitStatusFeedback = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28744 L4_MABX_B.EPBPCMInhibitStatusFeedback_d = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28745 L4_MABX_B.EPBPCMManualStatusFeedback = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28746 L4_MABX_B.EPBPCMManualStatusFeedback_o = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28747 L4_MABX_B.EPBPCMInhibitStatusFeedback_h = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28748 L4_MABX_B.EPBPCMInhibitStatusFeedback_m = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28749 L4_MABX_B.EPBPCMManualStatusFeedback_p = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28750 L4_MABX_B.EPBPCMManualStatusFeedback_i = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28751 L4_MABX_B.XPRErrorState = ENUM_XPR_ERROR_STATE_T_XPR_OK;
28752 L4_MABX_B.XPRErrorState_d = ENUM_XPR_ERROR_STATE_T_XPR_OK;
28753 L4_MABX_B.XPRControlMode = ENUM_XPR_CONTROL_MODE_T_NO_BRAKE_DEMAND;
28754 L4_MABX_B.XPRControlMode_d = ENUM_XPR_CONTROL_MODE_T_NO_BRAKE_DEMAND;
28755 L4_MABX_B.XBRPassThroughActive = ENUM_XBR_PASS_THROUGH_ACTIVE_T_NOT_ACTIVE;
28756 L4_MABX_B.DataTypeConversion_lr = ENUM_SWITCH_T_OFF;
28757 L4_MABX_B.DataTypeConversion1_lu = ENUM_SWITCH_T_OFF;
28758 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
28759 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
28760 L4_MABX_B.BrkPedArbBrakeSwitch = ENUM_J1939_SWITCH_T_OFF;
28761 L4_MABX_B.BrkPedArbBrakeSwitch_c = ENUM_J1939_SWITCH_T_OFF;
28762 L4_MABX_B.DataTypeConversion1_cy = ENUM_J1939_SWITCH_T_OFF;
28763 L4_MABX_B.DataTypeConversion3_l = ENUM_J1939_SWITCH_T_OFF;
28764 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_NOT_AVAILABLE;
28765 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_NOT_AVAILABLE;
28766 L4_MABX_B.If_Then_Else_pl.XBRPriority = ENUM_XBR_PRIORITY_T_HIGHEST_PRIORITY;
28767 L4_MABX_B.If_Then_Else_pl.XBRPassThroughActive =
28768 ENUM_XBR_PASS_THROUGH_ACTIVE_T_NOT_ACTIVE;
28769 L4_MABX_B.If_Then_Else_pl.XBREnduranceBrakeIntegrationMod =
28770 ENUM_XBR_EBI_MODE_T_NO_EBI_ALLOWED;
28771 L4_MABX_B.If_Then_Else_pl.XBRControlMode =
28772 ENUM_XBR_CONTROL_MODE_T_OVERRIDE_DISABLED;
28773 }
28774
28775 /* exported global signals */
28776 GLB_Absolute_Timestamp = 0.0;
28777 ReAX_ActualHandwheelPos = 0.0;
28778 EthernetLinkStatus = 0.0;
28779 CurrentAzimuth_rad = 0.0;
28780 TargetAzimuth_rad = 0.0;
28781 TargetVelocity_kph = 0.0;
28782 Curvature = 0.0;
28783 CrosstrackError = 0.0;
28784 CurrentVelocity_kph = 0.0;
28785 GPS_X = 0.0;
28786 GPS_Y = 0.0;
28787 GPS_Time = 0.0;
28788 ReAX_EchoedSteerWheelPos = 0.0;
28789 SteerWheelAngle = 0.0;
28790 YawRate = 0.0;
28791 SPN1810_LongitudinalAcceleration = 0.0;
28792 WheelBasedVehicleSpeed = 0.0;
28793 BrakeSwitch = 0.0;
28794 Lateral_Control_Rate_Limit = 0.0;
28795 Lateral_Control_Output = 0.0;
28796 Lateral_Control_Rate_Limiter_Output = 0.0;
28797 SteerCommandDeg = 0.0;
28798 DesiredSteeringAngle = 0.0;
28799 Lateral_Control_Heading_Error = 0.0;
28800 DIAG_CAN1_Count_Stuff_Errors = 0U;
28801 DIAG_CAN1_Count_Format_Errors = 0U;
28802 DIAG_CAN1_Count_Ack_Errors = 0U;
28803 DIAG_CAN1_Count_Bit0_Errors = 0U;
28804 DIAG_CAN1_Count_Bit1_Errors = 0U;
28805 DIAG_CAN1_Count_CRC_Errors = 0U;
28806 DIAG_CAN1_Count_RX_Lost = 0U;
28807 DIAG_CAN1_Count_RX_OK = 0U;
28808 DIAG_CAN1_Count_TX_OK = 0U;
28809 DIAG_CAN5_Count_Stuff_Errors = 0U;
28810 DIAG_CAN5_Count_Format_Errors = 0U;
28811 DIAG_CAN5_Count_Ack_Errors = 0U;
28812 DIAG_CAN5_Count_Bit0_Errors = 0U;
28813 DIAG_CAN5_Count_Bit1_Errors = 0U;
28814 DIAG_CAN5_Count_CRC_Errors = 0U;
28815 DIAG_CAN5_Count_RX_Lost = 0U;
28816 DIAG_CAN5_Count_RX_OK = 0U;
28817 DIAG_CAN5_Count_TX_OK = 0U;
28818 DIAG_CAN6_Count_Stuff_Errors = 0U;
28819 DIAG_CAN6_Count_Format_Errors = 0U;
28820 DIAG_CAN6_Count_Ack_Errors = 0U;
28821 DIAG_CAN6_Count_Bit0_Errors = 0U;
28822 DIAG_CAN6_Count_Bit1_Errors = 0U;
28823 DIAG_CAN6_Count_CRC_Errors = 0U;
28824 DIAG_CAN6_Count_RX_Lost = 0U;
28825 DIAG_CAN6_Count_RX_OK = 0U;
28826 DIAG_CAN6_Count_TX_OK = 0U;
28827 DIAG_CAN3_Count_Stuff_Errors = 0U;
28828 DIAG_CAN3_Count_Format_Errors = 0U;
28829 DIAG_CAN3_Count_Ack_Errors = 0U;
28830 DIAG_CAN3_Count_Bit0_Errors = 0U;
28831 DIAG_CAN3_Count_Bit1_Errors = 0U;
28832 DIAG_CAN3_Count_CRC_Errors = 0U;
28833 DIAG_CAN3_Count_RX_Lost = 0U;
28834 DIAG_CAN3_Count_RX_OK = 0U;
28835 DIAG_CAN3_Count_TX_OK = 0U;
28836 DIAG_CAN4_Count_Stuff_Errors = 0U;
28837 DIAG_CAN4_Count_Format_Errors = 0U;
28838 DIAG_CAN4_Count_Ack_Errors = 0U;
28839 DIAG_CAN4_Count_Bit0_Errors = 0U;
28840 DIAG_CAN4_Count_Bit1_Errors = 0U;
28841 DIAG_CAN4_Count_CRC_Errors = 0U;
28842 DIAG_CAN4_Count_RX_Lost = 0U;
28843 DIAG_CAN4_Count_RX_OK = 0U;
28844 DIAG_CAN4_Count_TX_OK = 0U;
28845 DIAG_CAN2_Count_Stuff_Errors = 0U;
28846 DIAG_CAN2_Count_Format_Errors = 0U;
28847 DIAG_CAN2_Count_Ack_Errors = 0U;
28848 DIAG_CAN2_Count_Bit0_Errors = 0U;
28849 DIAG_CAN2_Count_Bit1_Errors = 0U;
28850 DIAG_CAN2_Count_CRC_Errors = 0U;
28851 DIAG_CAN2_Count_RX_Lost = 0U;
28852 DIAG_CAN2_Count_RX_OK = 0U;
28853 DIAG_CAN2_Count_TX_OK = 0U;
28854 REAX_Handwheel_Torque = 0.0F;
28855 REAX_Handwheel_Velocity = 0.0F;
28856 REAX_Pull_Compensation = 0.0F;
28857 DIAG_CAN1_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28858 DIAG_CAN5_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28859 DIAG_CAN6_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28860 DIAG_CAN3_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28861 DIAG_CAN4_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28862 DIAG_CAN2_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28863 SupervisorMode = 0U;
28864 REAX_Current_Mode = 0U;
28865 REAX_Req_Mode = 0U;
28866 REAX_Status = 0U;
28867
28868 {
28869 int32_T i;
28870 for (i = 0; i < 100; i++) {
28871 GLB_SWVERSION_CPV_[i] = ((uint8_T)0U);
28872 }
28873 }
28874
28875 MABX_Mode = 0U;
28876 EStop = false;
28877 EnableSw = false;
28878 EngagePB = false;
28879 BrakeSW = false;
28880 MABX_Heartbeat = false;
28881 Heartbeat_Ok = false;
28882 RTMapsOk = false;
28883 LogEventPB = false;
28884 EngageReq = false;
28885 AutonomousEnabled = false;
28886 AutonomousOutputEnabled = false;
28887 RateLimiterActive = false;
28888 Pedal_pwm_position = 0.0;
28889
28890 /* states (dwork) */
28891 (void) memset((void *)&L4_MABX_DW, 0,
28892 sizeof(DW_L4_MABX_T));
28893
28894 /* child S-Function registration */
28895 {
28896 RTWSfcnInfo *sfcnInfo = &L4_MABX_M->NonInlinedSFcns.sfcnInfo;
28897 L4_MABX_M->sfcnInfo = (sfcnInfo);
28898 rtssSetErrorStatusPtr(sfcnInfo, (&rtmGetErrorStatus(L4_MABX_M)));
28899 rtssSetNumRootSampTimesPtr(sfcnInfo, &L4_MABX_M->Sizes.numSampTimes);
28900 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[0] = &(rtmGetTPtr(L4_MABX_M)[0]);
28901 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[1] = &(rtmGetTPtr(L4_MABX_M)[1]);
28902 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[2] = &(rtmGetTPtr(L4_MABX_M)[2]);
28903 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[3] = &(rtmGetTPtr(L4_MABX_M)[3]);
28904 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[4] = &(rtmGetTPtr(L4_MABX_M)[4]);
28905 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[5] = &(rtmGetTPtr(L4_MABX_M)[5]);
28906 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[6] = &(rtmGetTPtr(L4_MABX_M)[6]);
28907 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[7] = &(rtmGetTPtr(L4_MABX_M)[7]);
28908 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[8] = &(rtmGetTPtr(L4_MABX_M)[8]);
28909 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[9] = &(rtmGetTPtr(L4_MABX_M)[9]);
28910 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[10] = &(rtmGetTPtr(L4_MABX_M)[10]);
28911 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[11] = &(rtmGetTPtr(L4_MABX_M)[11]);
28912 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[12] = &(rtmGetTPtr(L4_MABX_M)[12]);
28913 rtssSetTPtrPtr(sfcnInfo,L4_MABX_M->NonInlinedSFcns.taskTimePtrs);
28914 rtssSetTStartPtr(sfcnInfo, &rtmGetTStart(L4_MABX_M));
28915 rtssSetTFinalPtr(sfcnInfo, &rtmGetTFinal(L4_MABX_M));
28916 rtssSetTimeOfLastOutputPtr(sfcnInfo, &rtmGetTimeOfLastOutput(L4_MABX_M));
28917 rtssSetStepSizePtr(sfcnInfo, &L4_MABX_M->Timing.stepSize);
28918 rtssSetStopRequestedPtr(sfcnInfo, &rtmGetStopRequested(L4_MABX_M));
28919 rtssSetDerivCacheNeedsResetPtr(sfcnInfo, &L4_MABX_M->derivCacheNeedsReset);
28920 rtssSetZCCacheNeedsResetPtr(sfcnInfo, &L4_MABX_M->zCCacheNeedsReset);
28921 rtssSetContTimeOutputInconsistentWithStateAtMajorStepPtr(sfcnInfo,
28922 &L4_MABX_M->CTOutputIncnstWithState);
28923 rtssSetSampleHitsPtr(sfcnInfo, &L4_MABX_M->Timing.sampleHits);
28924 rtssSetPerTaskSampleHitsPtr(sfcnInfo, &L4_MABX_M->Timing.perTaskSampleHits);
28925 rtssSetSimModePtr(sfcnInfo, &L4_MABX_M->simMode);
28926 rtssSetSolverInfoPtr(sfcnInfo, &L4_MABX_M->solverInfoPtr);
28927 }
28928
28929 L4_MABX_M->Sizes.numSFcns = (5);
28930
28931 /* register each child */
28932 {
28933 (void) memset((void *)&L4_MABX_M->NonInlinedSFcns.childSFunctions[0], 0,
28934 5*sizeof(SimStruct));
28935 L4_MABX_M->childSfunctions = (&L4_MABX_M->
28936 NonInlinedSFcns.childSFunctionPtrs[0]);
28937
28938 {
28939 int_T i;
28940 for (i = 0; i < 5; i++) {
28941 L4_MABX_M->childSfunctions[i] =
28942 (&L4_MABX_M->NonInlinedSFcns.childSFunctions[i]);
28943 }
28944 }
28945
28946 /* Level2 S-Function Block: L4_MABX/<S411>/dsa_tcpip_bkg_sfcn (dsa_tcpip_bkg_sfcn) */
28947 {
28948 SimStruct *rts = L4_MABX_M->childSfunctions[0];
28949
28950 /* timing info */
28951 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnPeriod;
28952 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnOffset;
28953 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnTsMap;
28954 (void) memset((void*)sfcnPeriod, 0,
28955 sizeof(time_T)*1);
28956 (void) memset((void*)sfcnOffset, 0,
28957 sizeof(time_T)*1);
28958 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28959 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28960 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28961
28962 {
28963 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[0]);
28964 }
28965
28966 _ssSetBlkInfo2PortInfo2Ptr(rts,
28967 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[0]);
28968
28969 /* Set up the mdlInfo pointer */
28970 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28971
28972 /* Allocate memory of model methods 2 */
28973 {
28974 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[0]);
28975 }
28976
28977 /* Allocate memory of model methods 3 */
28978 {
28979 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[0]);
28980 }
28981
28982 /* Allocate memory of model methods 4 */
28983 {
28984 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[0]);
28985 }
28986
28987 /* Allocate memory for states auxilliary information */
28988 {
28989 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[0]);
28990 ssSetPeriodicStatesInfo(rts,
28991 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[0]);
28992 }
28993
28994 /* path info */
28995 ssSetModelName(rts, "dsa_tcpip_bkg_sfcn");
28996 ssSetPath(rts,
28997 "L4_MABX/ETHERNET/TCPIP_Setup/Background_Task/dsa_tcpip_bkg_sfcn");
28998 ssSetRTModel(rts,L4_MABX_M);
28999 ssSetParentSS(rts, (NULL));
29000 ssSetRootSS(rts, rts);
29001 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
29002
29003 /* work vectors */
29004 ssSetIWork(rts, (int_T *) &L4_MABX_DW.dsa_tcpip_bkg_sfcn_IWORK);
29005
29006 {
29007 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
29008 &L4_MABX_M->NonInlinedSFcns.Sfcn0.dWork;
29009 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
29010 &L4_MABX_M->NonInlinedSFcns.Sfcn0.dWorkAux;
29011 ssSetSFcnDWork(rts, dWorkRecord);
29012 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
29013 _ssSetNumDWork(rts, 1);
29014
29015 /* IWORK */
29016 ssSetDWorkWidth(rts, 0, 1);
29017 ssSetDWorkDataType(rts, 0,SS_INTEGER);
29018 ssSetDWorkComplexSignal(rts, 0, 0);
29019 ssSetDWork(rts, 0, &L4_MABX_DW.dsa_tcpip_bkg_sfcn_IWORK);
29020 }
29021
29022 /* registration */
29023 dsa_tcpip_bkg_sfcn(rts);
29024 sfcnInitializeSizes(rts);
29025 sfcnInitializeSampleTimes(rts);
29026
29027 /* adjust sample time */
29028 ssSetSampleTime(rts, 0, -1.0);
29029 ssSetOffsetTime(rts, 0, -2.0);
29030 sfcnTsMap[0] = 9;
29031
29032 /* set compiled values of dynamic vector attributes */
29033 ssSetNumNonsampledZCs(rts, 0);
29034
29035 /* Update connectivity flags for each port */
29036 /* Update the BufferDstPort flags for each input port */
29037 }
29038
29039 /* Level2 S-Function Block: L4_MABX/<S412>/dsa_tcpip_irq_l2_sfcn (dsa_tcpip_irq_l2_sfcn) */
29040 {
29041 SimStruct *rts = L4_MABX_M->childSfunctions[1];
29042
29043 /* timing info */
29044 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnPeriod;
29045 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnOffset;
29046 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnTsMap;
29047 (void) memset((void*)sfcnPeriod, 0,
29048 sizeof(time_T)*1);
29049 (void) memset((void*)sfcnOffset, 0,
29050 sizeof(time_T)*1);
29051 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
29052 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
29053 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
29054
29055 {
29056 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[1]);
29057 }
29058
29059 _ssSetBlkInfo2PortInfo2Ptr(rts,
29060 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[1]);
29061
29062 /* Set up the mdlInfo pointer */
29063 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
29064
29065 /* Allocate memory of model methods 2 */
29066 {
29067 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[1]);
29068 }
29069
29070 /* Allocate memory of model methods 3 */
29071 {
29072 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[1]);
29073 }
29074
29075 /* Allocate memory of model methods 4 */
29076 {
29077 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[1]);
29078 }
29079
29080 /* Allocate memory for states auxilliary information */
29081 {
29082 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[1]);
29083 ssSetPeriodicStatesInfo(rts,
29084 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[1]);
29085 }
29086
29087 /* path info */
29088 ssSetModelName(rts, "dsa_tcpip_irq_l2_sfcn");
29089 ssSetPath(rts,
29090 "L4_MABX/ETHERNET/TCPIP_Setup/IRQ_Level_2_SW_INT/dsa_tcpip_irq_l2_sfcn");
29091 ssSetRTModel(rts,L4_MABX_M);
29092 ssSetParentSS(rts, (NULL));
29093 ssSetRootSS(rts, rts);
29094 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
29095
29096 /* registration */
29097 dsa_tcpip_irq_l2_sfcn(rts);
29098 sfcnInitializeSizes(rts);
29099 sfcnInitializeSampleTimes(rts);
29100
29101 /* adjust sample time */
29102 ssSetSampleTime(rts, 0, -1.0);
29103 ssSetOffsetTime(rts, 0, -3.0);
29104 sfcnTsMap[0] = 10;
29105
29106 /* set compiled values of dynamic vector attributes */
29107 ssSetNumNonsampledZCs(rts, 0);
29108
29109 /* Update connectivity flags for each port */
29110 /* Update the BufferDstPort flags for each input port */
29111 }
29112
29113 /* Level2 S-Function Block: L4_MABX/<S413>/dsa_tcpip_irq_l1_sfcn (dsa_tcpip_irq_l1_sfcn) */
29114 {
29115 SimStruct *rts = L4_MABX_M->childSfunctions[2];
29116
29117 /* timing info */
29118 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnPeriod;
29119 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnOffset;
29120 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnTsMap;
29121 (void) memset((void*)sfcnPeriod, 0,
29122 sizeof(time_T)*1);
29123 (void) memset((void*)sfcnOffset, 0,
29124 sizeof(time_T)*1);
29125 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
29126 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
29127 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
29128
29129 {
29130 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[2]);
29131 }
29132
29133 _ssSetBlkInfo2PortInfo2Ptr(rts,
29134 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[2]);
29135
29136 /* Set up the mdlInfo pointer */
29137 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
29138
29139 /* Allocate memory of model methods 2 */
29140 {
29141 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[2]);
29142 }
29143
29144 /* Allocate memory of model methods 3 */
29145 {
29146 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[2]);
29147 }
29148
29149 /* Allocate memory of model methods 4 */
29150 {
29151 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[2]);
29152 }
29153
29154 /* Allocate memory for states auxilliary information */
29155 {
29156 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[2]);
29157 ssSetPeriodicStatesInfo(rts,
29158 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[2]);
29159 }
29160
29161 /* outputs */
29162 {
29163 ssSetPortInfoForOutputs(rts,
29164 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortInfo[0]);
29165 _ssSetNumOutputPorts(rts, 1);
29166 _ssSetPortInfo2ForOutputUnits(rts,
29167 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortUnits[0]);
29168 ssSetOutputPortUnit(rts, 0, 0);
29169 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
29170 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortCoSimAttribute[0]);
29171 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
29172
29173 /* port 0 */
29174 {
29175 _ssSetOutputPortNumDimensions(rts, 0, 1);
29176 ssSetOutputPortWidth(rts, 0, 1);
29177 ssSetOutputPortSignal(rts, 0, (NULL));
29178 }
29179 }
29180
29181 /* path info */
29182 ssSetModelName(rts, "dsa_tcpip_irq_l1_sfcn");
29183 ssSetPath(rts,
29184 "L4_MABX/ETHERNET/TCPIP_Setup/Interrupt_Task/dsa_tcpip_irq_l1_sfcn");
29185 ssSetRTModel(rts,L4_MABX_M);
29186 ssSetParentSS(rts, (NULL));
29187 ssSetRootSS(rts, rts);
29188 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
29189
29190 /* register function-calls */
29191 {
29192 int_T *callSysOutputs = (int_T *)
29193 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysOutputs;
29194 void **callSysArgs1 = (void **)
29195 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysArgs1;
29196 int_T *callSysArgs2 = (int_T *)
29197 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysArgs2;
29198 SysOutputFcn *callSysFcns = (SysOutputFcn *)
29199 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysFcns;
29200
29201 {
29202 int32_T i;
29203 for (i = 0; i < 1; i++) {
29204 callSysOutputs[i] = 0;
29205 callSysFcns[i] = (SysOutputFcn) (NULL);
29206 callSysFcns[1+i] = (SysOutputFcn) (NULL);
29207 callSysFcns[2*1+i] = (SysOutputFcn) (NULL);
29208 callSysFcns[3*1+i] = (SysOutputFcn) (NULL);
29209 }
29210 }
29211
29212 ssSetCallSystemOutputPtr(rts, &callSysOutputs[0]);
29213 ssSetCallSystemOutputArg1List(rts, &callSysArgs1[0]);
29214 ssSetCallSystemOutputArg2List(rts, &callSysArgs2[0]);
29215 ssSetCallSystemOutputFcnList(rts, &callSysFcns[0]);
29216 callSysArgs1[0] = (void *)L4_MABX_M;
29217 callSysArgs2[0] = 0;
29218 callSysFcns[0] = (SysOutputFcn) L4_MABX_TcpInputProcessingFNI;
29219 callSysFcns[1+0] = (SysOutputFcn) L4_TcpInputProcessing_ResetFNI;
29220 callSysFcns[2+0] = (SysOutputFcn) (NULL);
29221 callSysFcns[3+0] = (SysOutputFcn) (NULL);
29222 callSysOutputs[0] = 1;
29223 }
29224
29225 /* registration */
29226 dsa_tcpip_irq_l1_sfcn(rts);
29227 sfcnInitializeSizes(rts);
29228 sfcnInitializeSampleTimes(rts);
29229
29230 /* adjust sample time */
29231 ssSetSampleTime(rts, 0, -1.0);
29232 ssSetOffsetTime(rts, 0, -4.0);
29233 sfcnTsMap[0] = 11;
29234
29235 /* set compiled values of dynamic vector attributes */
29236 ssSetOutputPortWidth(rts, 0, 1);
29237 ssSetNumNonsampledZCs(rts, 0);
29238
29239 /* Update connectivity flags for each port */
29240 _ssSetOutputPortConnected(rts, 0, 1);
29241 _ssSetOutputPortBeingMerged(rts, 0, 0);
29242
29243 /* Update the BufferDstPort flags for each input port */
29244 }
29245
29246 /* Level2 S-Function Block: L4_MABX/<S401>/dsa_tcpip_setup (dsa_tcpip_setup_sfcn) */
29247 {
29248 SimStruct *rts = L4_MABX_M->childSfunctions[3];
29249
29250 /* timing info */
29251 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnPeriod;
29252 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnOffset;
29253 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnTsMap;
29254 (void) memset((void*)sfcnPeriod, 0,
29255 sizeof(time_T)*1);
29256 (void) memset((void*)sfcnOffset, 0,
29257 sizeof(time_T)*1);
29258 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
29259 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
29260 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
29261
29262 {
29263 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[3]);
29264 }
29265
29266 _ssSetBlkInfo2PortInfo2Ptr(rts,
29267 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[3]);
29268
29269 /* Set up the mdlInfo pointer */
29270 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
29271
29272 /* Allocate memory of model methods 2 */
29273 {
29274 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[3]);
29275 }
29276
29277 /* Allocate memory of model methods 3 */
29278 {
29279 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[3]);
29280 }
29281
29282 /* Allocate memory of model methods 4 */
29283 {
29284 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[3]);
29285 }
29286
29287 /* Allocate memory for states auxilliary information */
29288 {
29289 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[3]);
29290 ssSetPeriodicStatesInfo(rts,
29291 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[3]);
29292 }
29293
29294 /* outputs */
29295 {
29296 ssSetPortInfoForOutputs(rts,
29297 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortInfo[0]);
29298 _ssSetNumOutputPorts(rts, 1);
29299 _ssSetPortInfo2ForOutputUnits(rts,
29300 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortUnits[0]);
29301 ssSetOutputPortUnit(rts, 0, 0);
29302 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
29303 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortCoSimAttribute[0]);
29304 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
29305
29306 /* port 0 */
29307 {
29308 _ssSetOutputPortNumDimensions(rts, 0, 1);
29309 ssSetOutputPortWidth(rts, 0, 1);
29310 ssSetOutputPortSignal(rts, 0, ((real_T *) &EthernetLinkStatus));
29311 }
29312 }
29313
29314 /* path info */
29315 ssSetModelName(rts, "dsa_tcpip_setup");
29316 ssSetPath(rts, "L4_MABX/ETHERNET/TCPIP_Setup/dsa_tcpip_setup");
29317 ssSetRTModel(rts,L4_MABX_M);
29318 ssSetParentSS(rts, (NULL));
29319 ssSetRootSS(rts, rts);
29320 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
29321
29322 /* parameters */
29323 {
29324 mxArray **sfcnParams = (mxArray **)
29325 &L4_MABX_M->NonInlinedSFcns.Sfcn3.params;
29326 ssSetSFcnParamsCount(rts, 6);
29327 ssSetSFcnParamsPtr(rts, &sfcnParams[0]);
29328 ssSetSFcnParam(rts, 0, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P1_Size);
29329 ssSetSFcnParam(rts, 1, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P2_Size);
29330 ssSetSFcnParam(rts, 2, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P3_Size);
29331 ssSetSFcnParam(rts, 3, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P4_Size);
29332 ssSetSFcnParam(rts, 4, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P5_Size);
29333 ssSetSFcnParam(rts, 5, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P6_Size);
29334 }
29335
29336 /* work vectors */
29337 ssSetIWork(rts, (int_T *) &L4_MABX_DW.dsa_tcpip_setup_IWORK);
29338 ssSetPWork(rts, (void **) &L4_MABX_DW.dsa_tcpip_setup_PWORK);
29339
29340 {
29341 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
29342 &L4_MABX_M->NonInlinedSFcns.Sfcn3.dWork;
29343 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
29344 &L4_MABX_M->NonInlinedSFcns.Sfcn3.dWorkAux;
29345 ssSetSFcnDWork(rts, dWorkRecord);
29346 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
29347 _ssSetNumDWork(rts, 2);
29348
29349 /* IWORK */
29350 ssSetDWorkWidth(rts, 0, 1);
29351 ssSetDWorkDataType(rts, 0,SS_INTEGER);
29352 ssSetDWorkComplexSignal(rts, 0, 0);
29353 ssSetDWork(rts, 0, &L4_MABX_DW.dsa_tcpip_setup_IWORK);
29354
29355 /* PWORK */
29356 ssSetDWorkWidth(rts, 1, 1);
29357 ssSetDWorkDataType(rts, 1,SS_POINTER);
29358 ssSetDWorkComplexSignal(rts, 1, 0);
29359 ssSetDWork(rts, 1, &L4_MABX_DW.dsa_tcpip_setup_PWORK);
29360 }
29361
29362 /* registration */
29363 dsa_tcpip_setup_sfcn(rts);
29364 sfcnInitializeSizes(rts);
29365 sfcnInitializeSampleTimes(rts);
29366
29367 /* adjust sample time */
29368 ssSetSampleTime(rts, 0, 0.01);
29369 ssSetOffsetTime(rts, 0, 0.0);
29370 sfcnTsMap[0] = 0;
29371
29372 /* set compiled values of dynamic vector attributes */
29373 ssSetNumNonsampledZCs(rts, 0);
29374
29375 /* Update connectivity flags for each port */
29376 _ssSetOutputPortConnected(rts, 0, 1);
29377 _ssSetOutputPortBeingMerged(rts, 0, 0);
29378
29379 /* Update the BufferDstPort flags for each input port */
29380 }
29381
29382 /* Level2 S-Function Block: L4_MABX/<S402>/TCPIP_Com (dsa_tcpip_udp_sfcn) */
29383 {
29384 SimStruct *rts = L4_MABX_M->childSfunctions[4];
29385
29386 /* timing info */
29387 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnPeriod;
29388 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnOffset;
29389 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnTsMap;
29390 (void) memset((void*)sfcnPeriod, 0,
29391 sizeof(time_T)*1);
29392 (void) memset((void*)sfcnOffset, 0,
29393 sizeof(time_T)*1);
29394 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
29395 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
29396 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
29397
29398 {
29399 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[4]);
29400 }
29401
29402 _ssSetBlkInfo2PortInfo2Ptr(rts,
29403 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[4]);
29404
29405 /* Set up the mdlInfo pointer */
29406 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
29407
29408 /* Allocate memory of model methods 2 */
29409 {
29410 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[4]);
29411 }
29412
29413 /* Allocate memory of model methods 3 */
29414 {
29415 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[4]);
29416 }
29417
29418 /* Allocate memory of model methods 4 */
29419 {
29420 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[4]);
29421 }
29422
29423 /* Allocate memory for states auxilliary information */
29424 {
29425 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[4]);
29426 ssSetPeriodicStatesInfo(rts,
29427 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[4]);
29428 }
29429
29430 /* inputs */
29431 {
29432 _ssSetNumInputPorts(rts, 3);
29433 ssSetPortInfoForInputs(rts,
29434 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortInfo[0]);
29435 _ssSetPortInfo2ForInputUnits(rts,
29436 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortUnits[0]);
29437 ssSetInputPortUnit(rts, 0, 0);
29438 ssSetInputPortUnit(rts, 1, 0);
29439 ssSetInputPortUnit(rts, 2, 0);
29440 _ssSetPortInfo2ForInputCoSimAttribute(rts,
29441 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortCoSimAttribute[0]);
29442 ssSetInputPortIsContinuousQuantity(rts, 0, 0);
29443 ssSetInputPortIsContinuousQuantity(rts, 1, 0);
29444 ssSetInputPortIsContinuousQuantity(rts, 2, 0);
29445
29446 /* port 0 */
29447 {
29448 boolean_T const **sfcnUPtrs = (boolean_T const **)
29449 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs0;
29450 sfcnUPtrs[0] = &L4_MABX_B.Enable;
29451 ssSetInputPortSignalPtrs(rts, 0, (InputPtrsType)&sfcnUPtrs[0]);
29452 _ssSetInputPortNumDimensions(rts, 0, 1);
29453 ssSetInputPortWidth(rts, 0, 1);
29454 }
29455
29456 /* port 1 */
29457 {
29458 uint32_T const **sfcnUPtrs = (uint32_T const **)
29459 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs1;
29460 sfcnUPtrs[0] = &L4_MABX_B.Encoder_o2;
29461 ssSetInputPortSignalPtrs(rts, 1, (InputPtrsType)&sfcnUPtrs[0]);
29462 _ssSetInputPortNumDimensions(rts, 1, 1);
29463 ssSetInputPortWidth(rts, 1, 1);
29464 }
29465
29466 /* port 2 */
29467 {
29468 uint8_T const **sfcnUPtrs = (uint8_T const **)
29469 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs2;
29470
29471 {
29472 int_T i1;
29473 const uint8_T *u2 = L4_MABX_B.Encoder_o1;
29474 for (i1=0; i1 < 24; i1++) {
29475 sfcnUPtrs[i1] = &u2[i1];
29476 }
29477 }
29478
29479 ssSetInputPortSignalPtrs(rts, 2, (InputPtrsType)&sfcnUPtrs[0]);
29480 _ssSetInputPortNumDimensions(rts, 2, 1);
29481 ssSetInputPortWidth(rts, 2, 24);
29482 }
29483 }
29484
29485 /* outputs */
29486 {
29487 ssSetPortInfoForOutputs(rts,
29488 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortInfo[0]);
29489 _ssSetNumOutputPorts(rts, 3);
29490 _ssSetPortInfo2ForOutputUnits(rts,
29491 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortUnits[0]);
29492 ssSetOutputPortUnit(rts, 0, 0);
29493 ssSetOutputPortUnit(rts, 1, 0);
29494 ssSetOutputPortUnit(rts, 2, 0);
29495 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
29496 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortCoSimAttribute[0]);
29497 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
29498 ssSetOutputPortIsContinuousQuantity(rts, 1, 0);
29499 ssSetOutputPortIsContinuousQuantity(rts, 2, 0);
29500
29501 /* port 0 */
29502 {
29503 _ssSetOutputPortNumDimensions(rts, 0, 1);
29504 ssSetOutputPortWidth(rts, 0, 3);
29505 ssSetOutputPortSignal(rts, 0, ((uint32_T *) L4_MABX_B.TCPIP_Com_o1));
29506 }
29507
29508 /* port 1 */
29509 {
29510 _ssSetOutputPortNumDimensions(rts, 1, 1);
29511 ssSetOutputPortWidth(rts, 1, 1);
29512 ssSetOutputPortSignal(rts, 1, ((uint32_T *) &L4_MABX_B.TCPIP_Com_o2));
29513 }
29514
29515 /* port 2 */
29516 {
29517 _ssSetOutputPortNumDimensions(rts, 2, 1);
29518 ssSetOutputPortWidth(rts, 2, 128);
29519 ssSetOutputPortSignal(rts, 2, ((uint8_T *) L4_MABX_B.TCPIP_Com_o3));
29520 }
29521 }
29522
29523 /* path info */
29524 ssSetModelName(rts, "TCPIP_Com");
29525 ssSetPath(rts, "L4_MABX/ETHERNET/UDPIP_Communication/TCPIP_Com");
29526 ssSetRTModel(rts,L4_MABX_M);
29527 ssSetParentSS(rts, (NULL));
29528 ssSetRootSS(rts, rts);
29529 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
29530
29531 /* parameters */
29532 {
29533 mxArray **sfcnParams = (mxArray **)
29534 &L4_MABX_M->NonInlinedSFcns.Sfcn4.params;
29535 ssSetSFcnParamsCount(rts, 6);
29536 ssSetSFcnParamsPtr(rts, &sfcnParams[0]);
29537 ssSetSFcnParam(rts, 0, (mxArray*)L4_MABX_P.TCPIP_Com_P1_Size);
29538 ssSetSFcnParam(rts, 1, (mxArray*)L4_MABX_P.TCPIP_Com_P2_Size);
29539 ssSetSFcnParam(rts, 2, (mxArray*)L4_MABX_P.TCPIP_Com_P3_Size);
29540 ssSetSFcnParam(rts, 3, (mxArray*)L4_MABX_P.TCPIP_Com_P4_Size);
29541 ssSetSFcnParam(rts, 4, (mxArray*)L4_MABX_P.TCPIP_Com_P5_Size);
29542 ssSetSFcnParam(rts, 5, (mxArray*)L4_MABX_P.TCPIP_Com_P6_Size);
29543 }
29544
29545 /* work vectors */
29546 ssSetPWork(rts, (void **) &L4_MABX_DW.TCPIP_Com_PWORK);
29547
29548 {
29549 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
29550 &L4_MABX_M->NonInlinedSFcns.Sfcn4.dWork;
29551 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
29552 &L4_MABX_M->NonInlinedSFcns.Sfcn4.dWorkAux;
29553 ssSetSFcnDWork(rts, dWorkRecord);
29554 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
29555 _ssSetNumDWork(rts, 1);
29556
29557 /* PWORK */
29558 ssSetDWorkWidth(rts, 0, 1);
29559 ssSetDWorkDataType(rts, 0,SS_POINTER);
29560 ssSetDWorkComplexSignal(rts, 0, 0);
29561 ssSetDWork(rts, 0, &L4_MABX_DW.TCPIP_Com_PWORK);
29562 }
29563
29564 /* registration */
29565 dsa_tcpip_udp_sfcn(rts);
29566 sfcnInitializeSizes(rts);
29567 sfcnInitializeSampleTimes(rts);
29568
29569 /* adjust sample time */
29570 ssSetSampleTime(rts, 0, 0.01);
29571 ssSetOffsetTime(rts, 0, 0.0);
29572 sfcnTsMap[0] = 0;
29573
29574 /* set compiled values of dynamic vector attributes */
29575 ssSetNumNonsampledZCs(rts, 0);
29576
29577 /* Update connectivity flags for each port */
29578 _ssSetInputPortConnected(rts, 0, 1);
29579 _ssSetInputPortConnected(rts, 1, 1);
29580 _ssSetInputPortConnected(rts, 2, 1);
29581 _ssSetOutputPortConnected(rts, 0, 1);
29582 _ssSetOutputPortConnected(rts, 1, 1);
29583 _ssSetOutputPortConnected(rts, 2, 1);
29584 _ssSetOutputPortBeingMerged(rts, 0, 0);
29585 _ssSetOutputPortBeingMerged(rts, 1, 0);
29586 _ssSetOutputPortBeingMerged(rts, 2, 0);
29587
29588 /* Update the BufferDstPort flags for each input port */
29589 ssSetInputPortBufferDstPort(rts, 0, -1);
29590 ssSetInputPortBufferDstPort(rts, 1, -1);
29591 ssSetInputPortBufferDstPort(rts, 2, -1);
29592 }
29593 }
29594
29595 {
29596 /* user code (registration function declaration) */
29597 /*Initialize global TRC pointers. */
29598 L4_MABX_rti_init_trc_pointers();
29599 }
29600
29601 /* Start for Enabled SubSystem: '<S746>/Slew_at_event' */
29602 L4_MABX_DW.Slew_at_event_MODE = false;
29603
29604 /* End of Start for SubSystem: '<S746>/Slew_at_event' */
29605
29606 /* Start for S-Function (dsa_tcpip_setup_sfcn): '<S401>/dsa_tcpip_setup' */
29607 /* Level2 S-Function Block: '<S401>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
29608 {
29609 SimStruct *rts = L4_MABX_M->childSfunctions[3];
29610 sfcnStart(rts);
29611 if (ssGetErrorStatus(rts) != (NULL))
29612 return;
29613 }
29614
29615 /* Start for Constant: '<S3>/Enable' */
29616 L4_MABX_B.Enable = L4_MABX_P.Enable_Value;
29617
29618 /* Start for S-Function (dsa_gen_tx_RTMapsEncode_sfun): '<S409>/Encoder' */
29619 Init_Tx_RTMapsEncode();
29620
29621 /* Start for S-Function (dsa_tcpip_udp_sfcn): '<S402>/TCPIP_Com' */
29622 /* Level2 S-Function Block: '<S402>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
29623 {
29624 SimStruct *rts = L4_MABX_M->childSfunctions[4];
29625 sfcnStart(rts);
29626 if (ssGetErrorStatus(rts) != (NULL))
29627 return;
29628 }
29629
29630 /* Start for S-Function (dsa_gen_rx_RTMapsDecode_sfun): '<S406>/Decoder' */
29631 Init_Rx_RTMapsDecode();
29632
29633 /* Start for Atomic SubSystem: '<S65>/Task_10ms' */
29634 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
29635 L4_MABX_B.distanceSpdTarget_e = L4_MABX_P.TmpRTBAtSignalConversion1Inport;
29636
29637 /* Start for Enabled SubSystem: '<S79>/Throttle_controller_gov' */
29638 L4_MABX_DW.Throttle_controller_gov_MODE = false;
29639
29640 /* Start for Enabled SubSystem: '<S246>/Calculate_D_term' */
29641 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term_h);
29642
29643 /* End of Start for SubSystem: '<S246>/Calculate_D_term' */
29644
29645 /* Start for Enabled SubSystem: '<S246>/Calculate_I_term' */
29646 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term_n);
29647
29648 /* End of Start for SubSystem: '<S246>/Calculate_I_term' */
29649
29650 /* End of Start for SubSystem: '<S79>/Throttle_controller_gov' */
29651
29652 /* Start for Enabled SubSystem: '<S107>/Determine_shift_interlock_brake_pressure_target' */
29653 L4_MABX_DW.Determine_shift_interlock_brake = false;
29654
29655 /* End of Start for SubSystem: '<S107>/Determine_shift_interlock_brake_pressure_target' */
29656
29657 /* Start for Enabled SubSystem: '<S107>/Determine_brake_hold_pressure_target' */
29658 L4_MABX_DW.Determine_brake_hold_pressure_t = false;
29659
29660 /* End of Start for SubSystem: '<S107>/Determine_brake_hold_pressure_target' */
29661
29662 /* Start for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
29663 L4_MABX_DW.Bendix_2C2_brake_application_pr = false;
29664
29665 /* Start for Enabled SubSystem: '<S114>/Calculate_D_term' */
29666 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term);
29667
29668 /* End of Start for SubSystem: '<S114>/Calculate_D_term' */
29669
29670 /* Start for Enabled SubSystem: '<S114>/Calculate_I_term' */
29671 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term);
29672
29673 /* End of Start for SubSystem: '<S114>/Calculate_I_term' */
29674
29675 /* End of Start for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
29676
29677 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
29678 L4_MABX_B.pathSpdLimit_a = L4_MABX_P.TmpRTBAtSignalConversion3Inport;
29679
29680 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
29681 L4_MABX_B.distance_o = L4_MABX_P.TmpRTBAtSignalConversion2Inport;
29682
29683 /* Start for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
29684 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = false;
29685
29686 /* Start for Enabled SubSystem: '<S152>/Calculate_D_term' */
29687 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term_p);
29688
29689 /* End of Start for SubSystem: '<S152>/Calculate_D_term' */
29690
29691 /* Start for Enabled SubSystem: '<S152>/Calculate_I_term' */
29692 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term_e);
29693
29694 /* End of Start for SubSystem: '<S152>/Calculate_I_term' */
29695
29696 /* End of Start for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
29697
29698 /* Start for Enabled SubSystem: '<S79>/Engine_speed_target' */
29699 L4_MABX_DW.Engine_speed_target_MODE = false;
29700
29701 /* End of Start for SubSystem: '<S79>/Engine_speed_target' */
29702
29703 /* Start for Enabled SubSystem: '<S285>/Slew_at_event' */
29704 L4_MABX_DW.Slew_at_event_MODE_d = false;
29705
29706 /* End of Start for SubSystem: '<S285>/Slew_at_event' */
29707
29708 /* Start for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
29709 L4_MABX_B.previewSteeringAngle_b = L4_MABX_P.TmpRTBAtrad2deg1Inport1_Initial;
29710
29711 /* Start for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
29712 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1 =
29713 L4_MABX_P.TmpRTBAtsignCurveOffsetInport1_;
29714
29715 /* Start for RateTransition: '<S286>/TmpRTBAtAdd2Inport2' */
29716 L4_MABX_B.TmpRTBAtAdd2Inport2 = L4_MABX_P.TmpRTBAtAdd2Inport2_InitialCond;
29717
29718 /* End of Start for SubSystem: '<S65>/Task_10ms' */
29719
29720 /* Start for Atomic SubSystem: '<S851>/CAN_TX_10ms' */
29721
29722 /* Start for Width: '<S1008>/Width' */
29723 L4_MABX_B.Width_n = 16U;
29724
29725 /* End of Start for SubSystem: '<S851>/CAN_TX_10ms' */
29726
29727 /* Start for Atomic SubSystem: '<S851>/CAN_TX_20ms' */
29728
29729 /* Start for Width: '<S1036>/Width' */
29730 L4_MABX_B.Width_b = 16U;
29731
29732 /* End of Start for SubSystem: '<S851>/CAN_TX_20ms' */
29733
29734 /* Start for Atomic SubSystem: '<S851>/CAN_TX_5000ms' */
29735
29736 /* Start for Width: '<S1051>/Width' */
29737 L4_MABX_B.Width = 8U;
29738
29739 /* End of Start for SubSystem: '<S851>/CAN_TX_5000ms' */
29740
29741 /* Start for RateTransition: '<S1080>/TmpRTBAtANDInport1' */
29742 L4_MABX_B.TmpRTBAtANDInport1 = L4_MABX_P.TmpRTBAtANDInport1_InitialCondi;
29743
29744 /* Start for Atomic SubSystem: '<S65>/Task_20ms' */
29745 /* Start for Constant: '<S398>/InitialHeading' */
29746 L4_MABX_B.InitialHeading = L4_MABX_P.InitialHeading_Value;
29747
29748 /* Start for Constant: '<S398>/InitialPosition' */
29749 L4_MABX_B.InitialPosition = L4_MABX_P.InitialPosition_Value;
29750
29751 /* Start for Constant: '<S398>/InitialXPosition' */
29752 L4_MABX_B.InitialXPosition = L4_MABX_P.InitialXPosition_Value;
29753
29754 /* Start for Constant: '<S398>/InitialYPosition' */
29755 L4_MABX_B.InitialYPosition = L4_MABX_P.InitialYPosition_Value;
29756
29757 /* End of Start for SubSystem: '<S65>/Task_20ms' */
29758
29759 /* Start for S-Function (rti_commonblock): '<S410>/S-Function1' incorporates:
29760 * SubSystem: '<S401>/Background_Task'
29761 */
29762 L4_MA_Background_Task_Start();
29763
29764 /* End of Start for S-Function (rti_commonblock): '<S410>/S-Function1' */
29765
29766 /* Start for S-Function (rti_commonblock): '<S416>/S-Function1' incorporates:
29767 * SubSystem: '<S401>/Interrupt_Task'
29768 */
29769 L4_MAB_Interrupt_Task_Start();
29770
29771 /* End of Start for S-Function (rti_commonblock): '<S416>/S-Function1' */
29772 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29773 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29774 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29775 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29776 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29777 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29778 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_n = POS_ZCSIG;
29779 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE = POS_ZCSIG;
29780
29781 {
29782 int32_T i;
29783
29784 /* InitializeConditions for UnitDelay: '<S759>/Unit Delay' */
29785 L4_MABX_DW.UnitDelay_DSTATE = L4_MABX_P.UnitDelay_InitialCondition_k;
29786
29787 /* InitializeConditions for UnitDelay: '<S757>/Delay Input1' */
29788 L4_MABX_DW.DelayInput1_DSTATE_p = L4_MABX_P.DetectRisePositive_vinit_a;
29789
29790 /* InitializeConditions for UnitDelay: '<S758>/Unit Delay' */
29791 L4_MABX_DW.UnitDelay_DSTATE_e = L4_MABX_P.UnitDelay_InitialCondition_o;
29792
29793 /* InitializeConditions for UnitDelay: '<S745>/Unit Delay' */
29794 L4_MABX_DW.UnitDelay_DSTATE_be = L4_MABX_P.UnitDelay_InitialCondition_h4;
29795
29796 /* InitializeConditions for UnitDelay: '<S756>/Delay Input1' */
29797 L4_MABX_DW.DelayInput1_DSTATE_m = L4_MABX_P.DetectFallNonpositive_vinit_o;
29798
29799 /* InitializeConditions for UnitDelay: '<S758>/Unit Delay1' */
29800 L4_MABX_DW.UnitDelay1_DSTATE_g = L4_MABX_P.UnitDelay1_InitialCondition_pp;
29801
29802 /* InitializeConditions for UnitDelay: '<S759>/Unit Delay1' */
29803 L4_MABX_DW.UnitDelay1_DSTATE_gp = L4_MABX_P.UnitDelay1_InitialCondition_h;
29804
29805 /* InitializeConditions for UnitDelay: '<S798>/FixPt Unit Delay2' */
29806 L4_MABX_DW.FixPtUnitDelay2_DSTATE =
29807 L4_MABX_P.FixPtUnitDelay2_InitialCondi_cq;
29808
29809 /* InitializeConditions for UnitDelay: '<S798>/FixPt Unit Delay1' */
29810 L4_MABX_DW.FixPtUnitDelay1_DSTATE =
29811 L4_MABX_P.FixPtUnitDelay1_InitialCondi_bn;
29812
29813 /* InitializeConditions for UnitDelay: '<S790>/FixPt Unit Delay2' */
29814 L4_MABX_DW.FixPtUnitDelay2_DSTATE_m =
29815 L4_MABX_P.FixPtUnitDelay2_InitialCondi_ge;
29816
29817 /* InitializeConditions for UnitDelay: '<S790>/FixPt Unit Delay1' */
29818 L4_MABX_DW.FixPtUnitDelay1_DSTATE_c =
29819 L4_MABX_P.FixPtUnitDelay1_InitialCondi_ha;
29820
29821 /* InitializeConditions for UnitDelay: '<S814>/FixPt Unit Delay2' */
29822 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o =
29823 L4_MABX_P.FixPtUnitDelay2_InitialCondi_af;
29824
29825 /* InitializeConditions for UnitDelay: '<S814>/FixPt Unit Delay1' */
29826 L4_MABX_DW.FixPtUnitDelay1_DSTATE_p =
29827 L4_MABX_P.FixPtUnitDelay1_InitialCondi_mh;
29828
29829 /* InitializeConditions for UnitDelay: '<S806>/FixPt Unit Delay2' */
29830 L4_MABX_DW.FixPtUnitDelay2_DSTATE_og =
29831 L4_MABX_P.FixPtUnitDelay2_InitialCondi_iq;
29832
29833 /* InitializeConditions for UnitDelay: '<S806>/FixPt Unit Delay1' */
29834 L4_MABX_DW.FixPtUnitDelay1_DSTATE_j =
29835 L4_MABX_P.FixPtUnitDelay1_InitialCondi_fp;
29836
29837 /* InitializeConditions for UnitDelay: '<S768>/Unit_Delay' */
29838 L4_MABX_DW.Unit_Delay_DSTATE_k = L4_MABX_P.Unit_Delay_InitialCondition_kk;
29839
29840 /* InitializeConditions for UnitDelay: '<S835>/Unit_Delay1' */
29841 L4_MABX_DW.Unit_Delay1_DSTATE = L4_MABX_P.Unit_Delay1_InitialCondition_oj;
29842
29843 /* InitializeConditions for UnitDelay: '<S835>/Unit_Delay2' */
29844 L4_MABX_DW.Unit_Delay2_DSTATE = L4_MABX_P.Unit_Delay2_InitialCondition_o;
29845
29846 /* InitializeConditions for UnitDelay: '<S768>/Unit_Delay1' */
29847 L4_MABX_DW.Unit_Delay1_DSTATE_o = L4_MABX_P.Unit_Delay1_InitialCondition_d;
29848
29849 /* InitializeConditions for UnitDelay: '<S836>/Unit_Delay1' */
29850 L4_MABX_DW.Unit_Delay1_DSTATE_a = L4_MABX_P.Unit_Delay1_InitialCondition_n;
29851
29852 /* InitializeConditions for UnitDelay: '<S836>/Unit_Delay2' */
29853 L4_MABX_DW.Unit_Delay2_DSTATE_b = L4_MABX_P.Unit_Delay2_InitialCondition_n;
29854
29855 /* InitializeConditions for UnitDelay: '<S834>/FixPt Unit Delay2' */
29856 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o0 =
29857 L4_MABX_P.FixPtUnitDelay2_InitialCondi_p4;
29858
29859 /* InitializeConditions for UnitDelay: '<S834>/FixPt Unit Delay1' */
29860 L4_MABX_DW.FixPtUnitDelay1_DSTATE_k =
29861 L4_MABX_P.FixPtUnitDelay1_InitialCondit_k;
29862
29863 /* InitializeConditions for UnitDelay: '<S833>/FixPt Unit Delay2' */
29864 L4_MABX_DW.FixPtUnitDelay2_DSTATE_d =
29865 L4_MABX_P.FixPtUnitDelay2_InitialCondi_jr;
29866
29867 /* InitializeConditions for UnitDelay: '<S833>/FixPt Unit Delay1' */
29868 L4_MABX_DW.FixPtUnitDelay1_DSTATE_h =
29869 L4_MABX_P.FixPtUnitDelay1_InitialCondi_ff;
29870
29871 /* InitializeConditions for UnitDelay: '<S822>/FixPt Unit Delay2' */
29872 L4_MABX_DW.FixPtUnitDelay2_DSTATE_c =
29873 L4_MABX_P.FixPtUnitDelay2_InitialCondit_k;
29874
29875 /* InitializeConditions for UnitDelay: '<S822>/FixPt Unit Delay1' */
29876 L4_MABX_DW.FixPtUnitDelay1_DSTATE_i =
29877 L4_MABX_P.FixPtUnitDelay1_InitialCondit_n;
29878
29879 /* InitializeConditions for RateTransition: '<S419>/Rate Transition' */
29880 L4_MABX_DW.RateTransition_Buffer0 =
29881 L4_MABX_P.RateTransition_InitialCondition;
29882 L4_MABX_DW.RateTransition_write_buf = -1;
29883 L4_MABX_DW.RateTransition_read_buf = -1;
29884
29885 /* InitializeConditions for UnitDelay: '<S651>/Unit_Delay3' */
29886 L4_MABX_DW.Unit_Delay3_DSTATE = L4_MABX_P.Unit_Delay3_InitialCondition;
29887
29888 /* InitializeConditions for UnitDelay: '<S651>/Unit_Delay' */
29889 L4_MABX_DW.Unit_Delay_DSTATE_ca = L4_MABX_P.Unit_Delay_InitialCondition_bw;
29890
29891 /* InitializeConditions for UnitDelay: '<S657>/Unit_Delay' */
29892 L4_MABX_DW.Unit_Delay_DSTATE_ed = L4_MABX_P.Unit_Delay_InitialCondition_ka;
29893
29894 /* InitializeConditions for S-Function (dsa_tcpip_setup_sfcn): '<S401>/dsa_tcpip_setup' */
29895 /* Level2 S-Function Block: '<S401>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
29896 {
29897 SimStruct *rts = L4_MABX_M->childSfunctions[3];
29898 sfcnInitializeConditions(rts);
29899 if (ssGetErrorStatus(rts) != (NULL))
29900 return;
29901 }
29902
29903 /* InitializeConditions for DiscretePulseGenerator: '<S400>/Heartbeat' */
29904 L4_MABX_DW.clockTickCounter = 0;
29905
29906 /* InitializeConditions for UnitDelay: '<S3>/Unit_Delay' */
29907 L4_MABX_DW.Unit_Delay_80_DSTATE = L4_MABX_P.Unit_Delay_80_InitialCondition;
29908 L4_MABX_DW.Unit_Delay_81_DSTATE = L4_MABX_P.Unit_Delay_81_InitialCondition;
29909 L4_MABX_DW.Unit_Delay_48_DSTATE = L4_MABX_P.Unit_Delay_48_InitialCondition;
29910 L4_MABX_DW.Unit_Delay_83_DSTATE = L4_MABX_P.Unit_Delay_83_InitialCondition;
29911 L4_MABX_DW.Unit_Delay_45_DSTATE = L4_MABX_P.Unit_Delay_45_InitialCondition;
29912 L4_MABX_DW.Unit_Delay_47_DSTATE = L4_MABX_P.Unit_Delay_47_InitialCondition;
29913 L4_MABX_DW.Unit_Delay_84_DSTATE = L4_MABX_P.Unit_Delay_84_InitialCondition;
29914
29915 /* InitializeConditions for S-Function (dsa_tcpip_udp_sfcn): '<S402>/TCPIP_Com' */
29916 /* Level2 S-Function Block: '<S402>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
29917 {
29918 SimStruct *rts = L4_MABX_M->childSfunctions[4];
29919 sfcnInitializeConditions(rts);
29920 if (ssGetErrorStatus(rts) != (NULL))
29921 return;
29922 }
29923
29924 /* InitializeConditions for UnitDelay: '<S407>/Delay Input1' */
29925 L4_MABX_DW.DelayInput1_DSTATE_n = L4_MABX_P.DetectRisePositive1_vinit;
29926
29927 /* InitializeConditions for UnitDelay: '<S405>/Unit Delay' */
29928 L4_MABX_DW.UnitDelay_DSTATE_k = L4_MABX_P.UnitDelay_InitialCondition_h;
29929
29930 /* InitializeConditions for UnitDelay: '<S861>/Unit Delay2' */
29931 L4_MABX_DW.UnitDelay2_DSTATE = L4_MABX_P.UnitDelay2_InitialCondition;
29932
29933 /* InitializeConditions for UnitDelay: '<S861>/Unit Delay1' */
29934 L4_MABX_DW.UnitDelay1_DSTATE_c = L4_MABX_P.UnitDelay1_InitialCondition_l;
29935
29936 /* InitializeConditions for UnitDelay: '<S861>/Unit Delay3' */
29937 L4_MABX_DW.UnitDelay3_DSTATE = L4_MABX_P.UnitDelay3_InitialCondition;
29938
29939 /* InitializeConditions for RateTransition: '<S1080>/TmpRTBAtANDInport1' */
29940 L4_MABX_DW.TmpRTBAtANDInport1_Buffer0 =
29941 L4_MABX_P.TmpRTBAtANDInport1_InitialCondi;
29942
29943 /* InitializeConditions for DiscretePulseGenerator: '<S1080>/Flash' */
29944 L4_MABX_DW.clockTickCounter_c = 0;
29945
29946 /* InitializeConditions for UnitDelay: '<S3>/Unit_Delay' */
29947 L4_MABX_DW.Unit_Delay_1_DSTATE = L4_MABX_P.Unit_Delay_1_InitialCondition_f;
29948 L4_MABX_DW.Unit_Delay_10_DSTATE = L4_MABX_P.Unit_Delay_10_InitialCondition;
29949 L4_MABX_DW.Unit_Delay_100_DSTATE = L4_MABX_P.Unit_Delay_100_InitialCondition;
29950 L4_MABX_DW.Unit_Delay_101_DSTATE = L4_MABX_P.Unit_Delay_101_InitialCondition;
29951 L4_MABX_DW.Unit_Delay_102_DSTATE = L4_MABX_P.Unit_Delay_102_InitialCondition;
29952 L4_MABX_DW.Unit_Delay_103_DSTATE = L4_MABX_P.Unit_Delay_103_InitialCondition;
29953 L4_MABX_DW.Unit_Delay_104_DSTATE = L4_MABX_P.Unit_Delay_104_InitialCondition;
29954 L4_MABX_DW.Unit_Delay_105_DSTATE = L4_MABX_P.Unit_Delay_105_InitialCondition;
29955 L4_MABX_DW.Unit_Delay_106_DSTATE = L4_MABX_P.Unit_Delay_106_InitialCondition;
29956 L4_MABX_DW.Unit_Delay_107_DSTATE = L4_MABX_P.Unit_Delay_107_InitialCondition;
29957 L4_MABX_DW.Unit_Delay_108_DSTATE = L4_MABX_P.Unit_Delay_108_InitialCondition;
29958 L4_MABX_DW.Unit_Delay_109_DSTATE = L4_MABX_P.Unit_Delay_109_InitialCondition;
29959 L4_MABX_DW.Unit_Delay_11_DSTATE = L4_MABX_P.Unit_Delay_11_InitialCondition;
29960 L4_MABX_DW.Unit_Delay_110_DSTATE = L4_MABX_P.Unit_Delay_110_InitialCondition;
29961 L4_MABX_DW.Unit_Delay_111_DSTATE = L4_MABX_P.Unit_Delay_111_InitialCondition;
29962 L4_MABX_DW.Unit_Delay_112_DSTATE = L4_MABX_P.Unit_Delay_112_InitialCondition;
29963 L4_MABX_DW.Unit_Delay_113_DSTATE = L4_MABX_P.Unit_Delay_113_InitialCondition;
29964 L4_MABX_DW.Unit_Delay_114_DSTATE = L4_MABX_P.Unit_Delay_114_InitialCondition;
29965 L4_MABX_DW.Unit_Delay_115_DSTATE = L4_MABX_P.Unit_Delay_115_InitialCondition;
29966 L4_MABX_DW.Unit_Delay_116_DSTATE = L4_MABX_P.Unit_Delay_116_InitialCondition;
29967 L4_MABX_DW.Unit_Delay_117_DSTATE = L4_MABX_P.Unit_Delay_117_InitialCondition;
29968 L4_MABX_DW.Unit_Delay_118_DSTATE = L4_MABX_P.Unit_Delay_118_InitialCondition;
29969 L4_MABX_DW.Unit_Delay_119_DSTATE = L4_MABX_P.Unit_Delay_119_InitialCondition;
29970 L4_MABX_DW.Unit_Delay_12_DSTATE = L4_MABX_P.Unit_Delay_12_InitialCondition;
29971 L4_MABX_DW.Unit_Delay_120_DSTATE = L4_MABX_P.Unit_Delay_120_InitialCondition;
29972 L4_MABX_DW.Unit_Delay_121_DSTATE = L4_MABX_P.Unit_Delay_121_InitialCondition;
29973 L4_MABX_DW.Unit_Delay_122_DSTATE = L4_MABX_P.Unit_Delay_122_InitialCondition;
29974 L4_MABX_DW.Unit_Delay_123_DSTATE = L4_MABX_P.Unit_Delay_123_InitialCondition;
29975 L4_MABX_DW.Unit_Delay_124_DSTATE = L4_MABX_P.Unit_Delay_124_InitialCondition;
29976 L4_MABX_DW.Unit_Delay_125_DSTATE = L4_MABX_P.Unit_Delay_125_InitialCondition;
29977 L4_MABX_DW.Unit_Delay_126_DSTATE = L4_MABX_P.Unit_Delay_126_InitialCondition;
29978 L4_MABX_DW.Unit_Delay_127_DSTATE = L4_MABX_P.Unit_Delay_127_InitialCondition;
29979 L4_MABX_DW.Unit_Delay_128_DSTATE = L4_MABX_P.Unit_Delay_128_InitialCondition;
29980 L4_MABX_DW.Unit_Delay_129_DSTATE = L4_MABX_P.Unit_Delay_129_InitialCondition;
29981 L4_MABX_DW.Unit_Delay_13_DSTATE = L4_MABX_P.Unit_Delay_13_InitialCondition;
29982 L4_MABX_DW.Unit_Delay_130_DSTATE = L4_MABX_P.Unit_Delay_130_InitialCondition;
29983 L4_MABX_DW.Unit_Delay_131_DSTATE = L4_MABX_P.Unit_Delay_131_InitialCondition;
29984 L4_MABX_DW.Unit_Delay_132_DSTATE = L4_MABX_P.Unit_Delay_132_InitialCondition;
29985 L4_MABX_DW.Unit_Delay_133_DSTATE = L4_MABX_P.Unit_Delay_133_InitialCondition;
29986 L4_MABX_DW.Unit_Delay_134_DSTATE = L4_MABX_P.Unit_Delay_134_InitialCondition;
29987 L4_MABX_DW.Unit_Delay_135_DSTATE = L4_MABX_P.Unit_Delay_135_InitialCondition;
29988 L4_MABX_DW.Unit_Delay_136_DSTATE = L4_MABX_P.Unit_Delay_136_InitialCondition;
29989 L4_MABX_DW.Unit_Delay_137_DSTATE = L4_MABX_P.Unit_Delay_137_InitialCondition;
29990 L4_MABX_DW.Unit_Delay_138_DSTATE = L4_MABX_P.Unit_Delay_138_InitialCondition;
29991 L4_MABX_DW.Unit_Delay_139_DSTATE = L4_MABX_P.Unit_Delay_139_InitialCondition;
29992 L4_MABX_DW.Unit_Delay_14_DSTATE = L4_MABX_P.Unit_Delay_14_InitialCondition;
29993 L4_MABX_DW.Unit_Delay_140_DSTATE = L4_MABX_P.Unit_Delay_140_InitialCondition;
29994 L4_MABX_DW.Unit_Delay_141_DSTATE = L4_MABX_P.Unit_Delay_141_InitialCondition;
29995 L4_MABX_DW.Unit_Delay_142_DSTATE = L4_MABX_P.Unit_Delay_142_InitialCondition;
29996 L4_MABX_DW.Unit_Delay_143_DSTATE = L4_MABX_P.Unit_Delay_143_InitialCondition;
29997 L4_MABX_DW.Unit_Delay_144_DSTATE = L4_MABX_P.Unit_Delay_144_InitialCondition;
29998 L4_MABX_DW.Unit_Delay_15_DSTATE = L4_MABX_P.Unit_Delay_15_InitialCondition;
29999 L4_MABX_DW.Unit_Delay_16_DSTATE = L4_MABX_P.Unit_Delay_16_InitialCondition;
30000 L4_MABX_DW.Unit_Delay_17_DSTATE = L4_MABX_P.Unit_Delay_17_InitialCondition;
30001 L4_MABX_DW.Unit_Delay_18_DSTATE = L4_MABX_P.Unit_Delay_18_InitialCondition;
30002 L4_MABX_DW.Unit_Delay_19_DSTATE = L4_MABX_P.Unit_Delay_19_InitialCondition;
30003 L4_MABX_DW.Unit_Delay_2_DSTATE = L4_MABX_P.Unit_Delay_2_InitialCondition_f;
30004 L4_MABX_DW.Unit_Delay_20_DSTATE = L4_MABX_P.Unit_Delay_20_InitialCondition;
30005 L4_MABX_DW.Unit_Delay_21_DSTATE = L4_MABX_P.Unit_Delay_21_InitialCondition;
30006 L4_MABX_DW.Unit_Delay_22_DSTATE = L4_MABX_P.Unit_Delay_22_InitialCondition;
30007 L4_MABX_DW.Unit_Delay_23_DSTATE = L4_MABX_P.Unit_Delay_23_InitialCondition;
30008 L4_MABX_DW.Unit_Delay_24_DSTATE = L4_MABX_P.Unit_Delay_24_InitialCondition;
30009 L4_MABX_DW.Unit_Delay_25_DSTATE = L4_MABX_P.Unit_Delay_25_InitialCondition;
30010 L4_MABX_DW.Unit_Delay_26_DSTATE = L4_MABX_P.Unit_Delay_26_InitialCondition;
30011 L4_MABX_DW.Unit_Delay_27_DSTATE = L4_MABX_P.Unit_Delay_27_InitialCondition;
30012 L4_MABX_DW.Unit_Delay_28_DSTATE = L4_MABX_P.Unit_Delay_28_InitialCondition;
30013 L4_MABX_DW.Unit_Delay_29_DSTATE = L4_MABX_P.Unit_Delay_29_InitialCondition;
30014 L4_MABX_DW.Unit_Delay_3_DSTATE = L4_MABX_P.Unit_Delay_3_InitialCondition_f;
30015 L4_MABX_DW.Unit_Delay_30_DSTATE = L4_MABX_P.Unit_Delay_30_InitialCondition;
30016 L4_MABX_DW.Unit_Delay_31_DSTATE = L4_MABX_P.Unit_Delay_31_InitialCondition;
30017 L4_MABX_DW.Unit_Delay_32_DSTATE = L4_MABX_P.Unit_Delay_32_InitialCondition;
30018 L4_MABX_DW.Unit_Delay_33_DSTATE = L4_MABX_P.Unit_Delay_33_InitialCondition;
30019 L4_MABX_DW.Unit_Delay_34_DSTATE = L4_MABX_P.Unit_Delay_34_InitialCondition;
30020 L4_MABX_DW.Unit_Delay_35_DSTATE = L4_MABX_P.Unit_Delay_35_InitialCondition;
30021 L4_MABX_DW.Unit_Delay_36_DSTATE = L4_MABX_P.Unit_Delay_36_InitialCondition;
30022 L4_MABX_DW.Unit_Delay_37_DSTATE = L4_MABX_P.Unit_Delay_37_InitialCondition;
30023 L4_MABX_DW.Unit_Delay_38_DSTATE = L4_MABX_P.Unit_Delay_38_InitialCondition;
30024 L4_MABX_DW.Unit_Delay_39_DSTATE = L4_MABX_P.Unit_Delay_39_InitialCondition;
30025 L4_MABX_DW.Unit_Delay_4_DSTATE = L4_MABX_P.Unit_Delay_4_InitialCondition;
30026 L4_MABX_DW.Unit_Delay_40_DSTATE = L4_MABX_P.Unit_Delay_40_InitialCondition;
30027 L4_MABX_DW.Unit_Delay_41_DSTATE = L4_MABX_P.Unit_Delay_41_InitialCondition;
30028 L4_MABX_DW.Unit_Delay_42_DSTATE = L4_MABX_P.Unit_Delay_42_InitialCondition;
30029 L4_MABX_DW.Unit_Delay_43_DSTATE = L4_MABX_P.Unit_Delay_43_InitialCondition;
30030 L4_MABX_DW.Unit_Delay_44_DSTATE = L4_MABX_P.Unit_Delay_44_InitialCondition;
30031 L4_MABX_DW.Unit_Delay_46_DSTATE = L4_MABX_P.Unit_Delay_46_InitialCondition;
30032 L4_MABX_DW.Unit_Delay_49_DSTATE = L4_MABX_P.Unit_Delay_49_InitialCondition;
30033 L4_MABX_DW.Unit_Delay_5_DSTATE = L4_MABX_P.Unit_Delay_5_InitialCondition;
30034 L4_MABX_DW.Unit_Delay_50_DSTATE = L4_MABX_P.Unit_Delay_50_InitialCondition;
30035 L4_MABX_DW.Unit_Delay_51_DSTATE = L4_MABX_P.Unit_Delay_51_InitialCondition;
30036 L4_MABX_DW.Unit_Delay_52_DSTATE = L4_MABX_P.Unit_Delay_52_InitialCondition;
30037 L4_MABX_DW.Unit_Delay_53_DSTATE = L4_MABX_P.Unit_Delay_53_InitialCondition;
30038 L4_MABX_DW.Unit_Delay_54_DSTATE = L4_MABX_P.Unit_Delay_54_InitialCondition;
30039 L4_MABX_DW.Unit_Delay_55_DSTATE = L4_MABX_P.Unit_Delay_55_InitialCondition;
30040 L4_MABX_DW.Unit_Delay_56_DSTATE = L4_MABX_P.Unit_Delay_56_InitialCondition;
30041 L4_MABX_DW.Unit_Delay_57_DSTATE = L4_MABX_P.Unit_Delay_57_InitialCondition;
30042 L4_MABX_DW.Unit_Delay_58_DSTATE = L4_MABX_P.Unit_Delay_58_InitialCondition;
30043 L4_MABX_DW.Unit_Delay_59_DSTATE = L4_MABX_P.Unit_Delay_59_InitialCondition;
30044 L4_MABX_DW.Unit_Delay_6_DSTATE = L4_MABX_P.Unit_Delay_6_InitialCondition;
30045 L4_MABX_DW.Unit_Delay_60_DSTATE = L4_MABX_P.Unit_Delay_60_InitialCondition;
30046 L4_MABX_DW.Unit_Delay_61_DSTATE = L4_MABX_P.Unit_Delay_61_InitialCondition;
30047 L4_MABX_DW.Unit_Delay_62_DSTATE = L4_MABX_P.Unit_Delay_62_InitialCondition;
30048 L4_MABX_DW.Unit_Delay_63_DSTATE = L4_MABX_P.Unit_Delay_63_InitialCondition;
30049 L4_MABX_DW.Unit_Delay_64_DSTATE = L4_MABX_P.Unit_Delay_64_InitialCondition;
30050 L4_MABX_DW.Unit_Delay_65_DSTATE = L4_MABX_P.Unit_Delay_65_InitialCondition;
30051 L4_MABX_DW.Unit_Delay_66_DSTATE = L4_MABX_P.Unit_Delay_66_InitialCondition;
30052 L4_MABX_DW.Unit_Delay_67_DSTATE = L4_MABX_P.Unit_Delay_67_InitialCondition;
30053 L4_MABX_DW.Unit_Delay_68_DSTATE = L4_MABX_P.Unit_Delay_68_InitialCondition;
30054 L4_MABX_DW.Unit_Delay_69_DSTATE = L4_MABX_P.Unit_Delay_69_InitialCondition;
30055 L4_MABX_DW.Unit_Delay_7_DSTATE = L4_MABX_P.Unit_Delay_7_InitialCondition;
30056 L4_MABX_DW.Unit_Delay_70_DSTATE = L4_MABX_P.Unit_Delay_70_InitialCondition;
30057 L4_MABX_DW.Unit_Delay_71_DSTATE = L4_MABX_P.Unit_Delay_71_InitialCondition;
30058 L4_MABX_DW.Unit_Delay_72_DSTATE = L4_MABX_P.Unit_Delay_72_InitialCondition;
30059 L4_MABX_DW.Unit_Delay_73_DSTATE = L4_MABX_P.Unit_Delay_73_InitialCondition;
30060 L4_MABX_DW.Unit_Delay_74_DSTATE = L4_MABX_P.Unit_Delay_74_InitialCondition;
30061 L4_MABX_DW.Unit_Delay_75_DSTATE = L4_MABX_P.Unit_Delay_75_InitialCondition;
30062 L4_MABX_DW.Unit_Delay_76_DSTATE = L4_MABX_P.Unit_Delay_76_InitialCondition;
30063 L4_MABX_DW.Unit_Delay_77_DSTATE = L4_MABX_P.Unit_Delay_77_InitialCondition;
30064 L4_MABX_DW.Unit_Delay_78_DSTATE = L4_MABX_P.Unit_Delay_78_InitialCondition;
30065 L4_MABX_DW.Unit_Delay_79_DSTATE = L4_MABX_P.Unit_Delay_79_InitialCondition;
30066 L4_MABX_DW.Unit_Delay_8_DSTATE = L4_MABX_P.Unit_Delay_8_InitialCondition;
30067 L4_MABX_DW.Unit_Delay_82_DSTATE = L4_MABX_P.Unit_Delay_82_InitialCondition;
30068 L4_MABX_DW.Unit_Delay_85_DSTATE = L4_MABX_P.Unit_Delay_85_InitialCondition;
30069 L4_MABX_DW.Unit_Delay_86_DSTATE = L4_MABX_P.Unit_Delay_86_InitialCondition;
30070 L4_MABX_DW.Unit_Delay_87_DSTATE = L4_MABX_P.Unit_Delay_87_InitialCondition;
30071 L4_MABX_DW.Unit_Delay_88_DSTATE = L4_MABX_P.Unit_Delay_88_InitialCondition;
30072 L4_MABX_DW.Unit_Delay_89_DSTATE = L4_MABX_P.Unit_Delay_89_InitialCondition;
30073 L4_MABX_DW.Unit_Delay_9_DSTATE = L4_MABX_P.Unit_Delay_9_InitialCondition;
30074 L4_MABX_DW.Unit_Delay_90_DSTATE = L4_MABX_P.Unit_Delay_90_InitialCondition;
30075 L4_MABX_DW.Unit_Delay_91_DSTATE = L4_MABX_P.Unit_Delay_91_InitialCondition;
30076 L4_MABX_DW.Unit_Delay_92_DSTATE = L4_MABX_P.Unit_Delay_92_InitialCondition;
30077 L4_MABX_DW.Unit_Delay_93_DSTATE = L4_MABX_P.Unit_Delay_93_InitialCondition;
30078 L4_MABX_DW.Unit_Delay_94_DSTATE = L4_MABX_P.Unit_Delay_94_InitialCondition;
30079 L4_MABX_DW.Unit_Delay_95_DSTATE = L4_MABX_P.Unit_Delay_95_InitialCondition;
30080 L4_MABX_DW.Unit_Delay_96_DSTATE = L4_MABX_P.Unit_Delay_96_InitialCondition;
30081 L4_MABX_DW.Unit_Delay_97_DSTATE = L4_MABX_P.Unit_Delay_97_InitialCondition;
30082 L4_MABX_DW.Unit_Delay_98_DSTATE = L4_MABX_P.Unit_Delay_98_InitialCondition;
30083 L4_MABX_DW.Unit_Delay_99_DSTATE = L4_MABX_P.Unit_Delay_99_InitialCondition;
30084
30085 /* InitializeConditions for UnitDelay: '<S651>/Unit_Delay2' */
30086 L4_MABX_DW.Unit_Delay2_DSTATE_f = L4_MABX_P.Unit_Delay2_InitialCondition_e;
30087
30088 /* InitializeConditions for UnitDelay: '<S651>/Unit_Delay1' */
30089 L4_MABX_DW.Unit_Delay1_DSTATE_d = L4_MABX_P.Unit_Delay1_InitialCondition_m4;
30090
30091 /* InitializeConditions for UnitDelay: '<S658>/Unit_Delay' */
30092 L4_MABX_DW.Unit_Delay_DSTATE_en = L4_MABX_P.Unit_Delay_InitialCondition_p3;
30093
30094 /* InitializeConditions for UnitDelay: '<S749>/Delay Input1' */
30095 L4_MABX_DW.DelayInput1_DSTATE_e = L4_MABX_P.DetectRisePositive_vinit_h;
30096
30097 /* InitializeConditions for UnitDelay: '<S750>/Unit Delay' */
30098 L4_MABX_DW.UnitDelay_DSTATE_i = L4_MABX_P.UnitDelay_InitialCondition_f;
30099
30100 /* InitializeConditions for UnitDelay: '<S744>/Unit Delay' */
30101 L4_MABX_DW.UnitDelay_DSTATE_de = L4_MABX_P.UnitDelay_InitialCondition_cx;
30102
30103 /* InitializeConditions for UnitDelay: '<S748>/Delay Input1' */
30104 L4_MABX_DW.DelayInput1_DSTATE_h = L4_MABX_P.DetectFallNonpositive_vinit_d;
30105
30106 /* InitializeConditions for UnitDelay: '<S750>/Unit Delay1' */
30107 L4_MABX_DW.UnitDelay1_DSTATE_o = L4_MABX_P.UnitDelay1_InitialCondition_k;
30108
30109 /* InitializeConditions for UnitDelay: '<S751>/Unit Delay' */
30110 L4_MABX_DW.UnitDelay_DSTATE_n = L4_MABX_P.UnitDelay_InitialCondition_i;
30111
30112 /* InitializeConditions for UnitDelay: '<S751>/Unit Delay1' */
30113 L4_MABX_DW.UnitDelay1_DSTATE_i = L4_MABX_P.UnitDelay1_InitialCondition_g;
30114
30115 /* InitializeConditions for UnitDelay: '<S10>/Unit_Delay' */
30116 L4_MABX_DW.Unit_Delay_DSTATE_do = L4_MABX_P.Unit_Delay_InitialCondition_jp;
30117
30118 /* SystemInitialize for Enabled SubSystem: '<S499>/AIR1' */
30119 /* SystemInitialize for Outport: '<S500>/PneumaticSupplyPress' */
30120 L4_MABX_B.SFunction1_o1_lc = L4_MABX_P.PneumaticSupplyPress_Y0;
30121
30122 /* SystemInitialize for Outport: '<S500>/ParkingAnd_orTrailerAirPress' */
30123 L4_MABX_B.SFunction1_o2_g0 = L4_MABX_P.ParkingAnd_orTrailerAirPress_Y0;
30124
30125 /* SystemInitialize for Outport: '<S500>/ServiceBrakeCircuit1AirPress' */
30126 L4_MABX_B.SFunction1_o3_as = L4_MABX_P.ServiceBrakeCircuit1AirPress_Y0;
30127
30128 /* SystemInitialize for Outport: '<S500>/ServiceBrakeCircuit2AirPress' */
30129 L4_MABX_B.SFunction1_o4_n3 = L4_MABX_P.ServiceBrakeCircuit2AirPress_Y0;
30130
30131 /* SystemInitialize for Outport: '<S500>/AuxEquipmentSupplyPress' */
30132 L4_MABX_B.SFunction1_o5_mt = L4_MABX_P.AuxEquipmentSupplyPress_Y0;
30133
30134 /* SystemInitialize for Outport: '<S500>/AirSuspensionSupplyPress' */
30135 L4_MABX_B.SFunction1_o6_iv = L4_MABX_P.AirSuspensionSupplyPress_Y0;
30136
30137 /* SystemInitialize for Outport: '<S500>/AirCompressorStatus' */
30138 L4_MABX_B.SFunction1_o7_g5 = L4_MABX_P.AirCompressorStatus_Y0;
30139
30140 /* SystemInitialize for Outport: '<S500>/PowertrainCircuitAirSupplyPress' */
30141 L4_MABX_B.SFunction1_o8_fg = L4_MABX_P.PowertrainCircuitAirSupplyPress;
30142
30143 /* SystemInitialize for Outport: '<S500>/RX status' */
30144 L4_MABX_B.SFunction1_o9_b = L4_MABX_P.RXstatus_Y0_n5;
30145
30146 /* SystemInitialize for Outport: '<S500>/RX time' */
30147 L4_MABX_B.SFunction1_o10_o = L4_MABX_P.RXtime_Y0_i;
30148
30149 /* SystemInitialize for Outport: '<S500>/RX delta time' */
30150 L4_MABX_B.SFunction1_o11_m = L4_MABX_P.RXdeltatime_Y0_ne;
30151
30152 /* End of SystemInitialize for SubSystem: '<S499>/AIR1' */
30153
30154 /* SystemInitialize for Enabled SubSystem: '<S501>/AMB' */
30155 /* SystemInitialize for Outport: '<S502>/BarometricPress' */
30156 L4_MABX_B.SFunction1_o1_ih = L4_MABX_P.BarometricPress_Y0;
30157
30158 /* SystemInitialize for Outport: '<S502>/CabInteriorTemp' */
30159 L4_MABX_B.SFunction1_o2_ov = L4_MABX_P.CabInteriorTemp_Y0;
30160
30161 /* SystemInitialize for Outport: '<S502>/AmbientAirTemp' */
30162 L4_MABX_B.SFunction1_o3_oc = L4_MABX_P.AmbientAirTemp_Y0;
30163
30164 /* SystemInitialize for Outport: '<S502>/EngAirIntakeTemp' */
30165 L4_MABX_B.SFunction1_o4_ey = L4_MABX_P.EngAirIntakeTemp_Y0;
30166
30167 /* SystemInitialize for Outport: '<S502>/RoadSurfaceTemp' */
30168 L4_MABX_B.SFunction1_o5_op = L4_MABX_P.RoadSurfaceTemp_Y0;
30169
30170 /* SystemInitialize for Outport: '<S502>/RX status' */
30171 L4_MABX_B.SFunction1_o6_it = L4_MABX_P.RXstatus_Y0_m;
30172
30173 /* SystemInitialize for Outport: '<S502>/RX time' */
30174 L4_MABX_B.SFunction1_o7_lsr = L4_MABX_P.RXtime_Y0_h;
30175
30176 /* SystemInitialize for Outport: '<S502>/RX delta time' */
30177 L4_MABX_B.SFunction1_o8_n5 = L4_MABX_P.RXdeltatime_Y0_c;
30178
30179 /* End of SystemInitialize for SubSystem: '<S501>/AMB' */
30180
30181 /* SystemInitialize for Atomic SubSystem: '<S851>/CAN_TX_1000ms' */
30182 /* SystemInitialize for Enabled SubSystem: '<S871>/AIR1' */
30183 /* SystemInitialize for Outport: '<S872>/TX status' */
30184 L4_MABX_B.SFunction1_o1_d4 = L4_MABX_P.TXstatus_Y0;
30185
30186 /* SystemInitialize for Outport: '<S872>/TX time' */
30187 L4_MABX_B.SFunction1_o2_gg = L4_MABX_P.TXtime_Y0;
30188
30189 /* SystemInitialize for Outport: '<S872>/TX delta time' */
30190 L4_MABX_B.SFunction1_o3_nm = L4_MABX_P.TXdeltatime_Y0;
30191
30192 /* SystemInitialize for Outport: '<S872>/TX delay time' */
30193 L4_MABX_B.SFunction1_o4_lk = L4_MABX_P.TXdelaytime_Y0;
30194
30195 /* End of SystemInitialize for SubSystem: '<S871>/AIR1' */
30196
30197 /* SystemInitialize for Enabled SubSystem: '<S879>/AMB' */
30198 /* SystemInitialize for Outport: '<S880>/TX status' */
30199 L4_MABX_B.SFunction1_o1_j = L4_MABX_P.TXstatus_Y0_e;
30200
30201 /* SystemInitialize for Outport: '<S880>/TX time' */
30202 L4_MABX_B.SFunction1_o2_bi = L4_MABX_P.TXtime_Y0_d;
30203
30204 /* SystemInitialize for Outport: '<S880>/TX delta time' */
30205 L4_MABX_B.SFunction1_o3_fi = L4_MABX_P.TXdeltatime_Y0_g;
30206
30207 /* SystemInitialize for Outport: '<S880>/TX delay time' */
30208 L4_MABX_B.SFunction1_o4_bt = L4_MABX_P.TXdelaytime_Y0_k;
30209
30210 /* End of SystemInitialize for SubSystem: '<S879>/AMB' */
30211 /* End of SystemInitialize for SubSystem: '<S851>/CAN_TX_1000ms' */
30212
30213 /* SystemInitialize for Chart: '<S847>/Chart' */
30214 L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW = 0U;
30215 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
30216
30217 /* SystemInitialize for Chart: '<S765>/Health State Machine PWM Sensor 1' */
30218 L4_MABX_DW.is_FAILURE_DETECTED_f = L4_MABX_IN_NO_ACTIVE_CHILD;
30219 L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW = 0U;
30220 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
30221
30222 /* SystemInitialize for Chart: '<S765>/Health State Machine PWM Sensor 2' */
30223 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_NO_ACTIVE_CHILD;
30224 L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H = 0U;
30225 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_ACTIVE_CHILD;
30226
30227 /* SystemInitialize for Enabled SubSystem: '<S746>/Slew_at_event' */
30228 /* InitializeConditions for UnitDelay: '<S840>/Unit_Delay' */
30229 L4_MABX_DW.Unit_Delay_DSTATE_bo = L4_MABX_P.Unit_Delay_InitialCondition_ks;
30230
30231 /* InitializeConditions for UnitDelay: '<S841>/Unit_Delay' */
30232 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Unit_Delay_InitialCondition_n;
30233
30234 /* InitializeConditions for UnitDelay: '<S844>/FixPt Unit Delay2' */
30235 L4_MABX_DW.FixPtUnitDelay2_DSTATE_mt =
30236 L4_MABX_P.FixPtUnitDelay2_InitialCondit_j;
30237
30238 /* InitializeConditions for UnitDelay: '<S844>/FixPt Unit Delay1' */
30239 L4_MABX_DW.FixPtUnitDelay1_DSTATE_m =
30240 L4_MABX_P.FixPtUnitDelay1_InitialCondi_ly;
30241
30242 /* InitializeConditions for UnitDelay: '<S839>/Unit_Delay' */
30243 L4_MABX_DW.Unit_Delay_DSTATE_em = L4_MABX_P.Unit_Delay_InitialCondition_g2;
30244
30245 /* SystemInitialize for Outport: '<S769>/F_Out_slewing' */
30246 L4_MABX_B.LogicalOperator_p = L4_MABX_P.F_Out_slewing_Y0_e;
30247
30248 /* SystemInitialize for Outport: '<S769>/Out' */
30249 L4_MABX_B.If_Then_Else_gq.Switch = L4_MABX_P.Out_Y0_lv;
30250
30251 /* End of SystemInitialize for SubSystem: '<S746>/Slew_at_event' */
30252
30253 /* SystemInitialize for Enabled SubSystem: '<S509>/CCVS1_31' */
30254 /* SystemInitialize for Outport: '<S510>/TwoSpeedAxleSwitch' */
30255 L4_MABX_B.SFunction1_o1_mm = L4_MABX_P.TwoSpeedAxleSwitch_Y0_j;
30256
30257 /* SystemInitialize for Outport: '<S510>/ParkingBrakeSwitch' */
30258 L4_MABX_B.SFunction1_o2_nx = L4_MABX_P.ParkingBrakeSwitch_Y0_c;
30259
30260 /* SystemInitialize for Outport: '<S510>/CruiseCtrlPauseSwitch' */
30261 L4_MABX_B.SFunction1_o3_d3 = L4_MABX_P.CruiseCtrlPauseSwitch_Y0_g;
30262
30263 /* SystemInitialize for Outport: '<S510>/ParkBrakeReleaseInhibitRq' */
30264 L4_MABX_B.SFunction1_o4_iu = L4_MABX_P.ParkBrakeReleaseInhibitRq_Y0_c;
30265
30266 /* SystemInitialize for Outport: '<S510>/WheelBasedVehicleSpeed' */
30267 L4_MABX_B.SFunction1_o5_hq = L4_MABX_P.WheelBasedVehicleSpeed_Y0_a;
30268
30269 /* SystemInitialize for Outport: '<S510>/CruiseCtrlActive' */
30270 L4_MABX_B.SFunction1_o6_p = L4_MABX_P.CruiseCtrlActive_Y0_l;
30271
30272 /* SystemInitialize for Outport: '<S510>/CruiseCtrlEnableSwitch' */
30273 L4_MABX_B.SFunction1_o7_l3 = L4_MABX_P.CruiseCtrlEnableSwitch_Y0_i;
30274
30275 /* SystemInitialize for Outport: '<S510>/BrakeSwitch' */
30276 L4_MABX_B.SFunction1_o8_ci = L4_MABX_P.BrakeSwitch_Y0_d;
30277
30278 /* SystemInitialize for Outport: '<S510>/ClutchSwitch' */
30279 L4_MABX_B.SFunction1_o9_l5 = L4_MABX_P.ClutchSwitch_Y0_j;
30280
30281 /* SystemInitialize for Outport: '<S510>/CruiseCtrlSetSwitch' */
30282 L4_MABX_B.SFunction1_o10_nk = L4_MABX_P.CruiseCtrlSetSwitch_Y0_k;
30283
30284 /* SystemInitialize for Outport: '<S510>/CruiseCtrlCoastSwitch' */
30285 L4_MABX_B.SFunction1_o11_n0 = L4_MABX_P.CruiseCtrlCoastSwitch_Y0_i;
30286
30287 /* SystemInitialize for Outport: '<S510>/CruiseCtrlResumeSwitch' */
30288 L4_MABX_B.SFunction1_o12_f = L4_MABX_P.CruiseCtrlResumeSwitch_Y0_k;
30289
30290 /* SystemInitialize for Outport: '<S510>/CruiseCtrlAccelerateSwitch' */
30291 L4_MABX_B.SFunction1_o13_p = L4_MABX_P.CruiseCtrlAccelerateSwitch_Y0_e;
30292
30293 /* SystemInitialize for Outport: '<S510>/CruiseCtrlSetSpeed' */
30294 L4_MABX_B.SFunction1_o14_g = L4_MABX_P.CruiseCtrlSetSpeed_Y0_b;
30295
30296 /* SystemInitialize for Outport: '<S510>/PTOGovernorState' */
30297 L4_MABX_B.SFunction1_o15_d = L4_MABX_P.PTOGovernorState_Y0_i;
30298
30299 /* SystemInitialize for Outport: '<S510>/CruiseCtrlStates' */
30300 L4_MABX_B.SFunction1_o16_c = L4_MABX_P.CruiseCtrlStates_Y0_m;
30301
30302 /* SystemInitialize for Outport: '<S510>/EngIdleIncrementSwitch' */
30303 L4_MABX_B.SFunction1_o17_p = L4_MABX_P.EngIdleIncrementSwitch_Y0_o;
30304
30305 /* SystemInitialize for Outport: '<S510>/EngIdleDecrementSwitch' */
30306 L4_MABX_B.SFunction1_o18_c = L4_MABX_P.EngIdleDecrementSwitch_Y0_h;
30307
30308 /* SystemInitialize for Outport: '<S510>/EngTestModeSwitch' */
30309 L4_MABX_B.SFunction1_o19_n = L4_MABX_P.EngTestModeSwitch_Y0_b;
30310
30311 /* SystemInitialize for Outport: '<S510>/EngShutdownOverrideSwitch' */
30312 L4_MABX_B.SFunction1_o20_k = L4_MABX_P.EngShutdownOverrideSwitch_Y0_p;
30313
30314 /* SystemInitialize for Outport: '<S510>/RX status' */
30315 L4_MABX_B.SFunction1_o21_p = L4_MABX_P.RXstatus_Y0_i4;
30316
30317 /* SystemInitialize for Outport: '<S510>/RX time' */
30318 L4_MABX_B.SFunction1_o22_c = L4_MABX_P.RXtime_Y0_j;
30319
30320 /* SystemInitialize for Outport: '<S510>/RX delta time' */
30321 L4_MABX_B.SFunction1_o23_ju = L4_MABX_P.RXdeltatime_Y0_pn;
30322
30323 /* End of SystemInitialize for SubSystem: '<S509>/CCVS1_31' */
30324
30325 /* SystemInitialize for Enabled SubSystem: '<S520>/EBC2_0B1' */
30326 /* SystemInitialize for Outport: '<S521>/FrontAxleSpeed' */
30327 L4_MABX_B.SFunction1_o1_loi = L4_MABX_P.FrontAxleSpeed_Y0;
30328
30329 /* SystemInitialize for Outport: '<S521>/RelativeSpeedFrontAxleLeftWheel' */
30330 L4_MABX_B.SFunction1_o2_e2 = L4_MABX_P.RelativeSpeedFrontAxleLeftWheel;
30331
30332 /* SystemInitialize for Outport: '<S521>/RlativeSpeedFrontAxleRightWheel' */
30333 L4_MABX_B.SFunction1_o3_n2 = L4_MABX_P.RlativeSpeedFrontAxleRightWheel;
30334
30335 /* SystemInitialize for Outport: '<S521>/RelativeSpeedRearAxle1LeftWheel' */
30336 L4_MABX_B.SFunction1_o4_nx = L4_MABX_P.RelativeSpeedRearAxle1LeftWheel;
30337
30338 /* SystemInitialize for Outport: '<S521>/RlativeSpeedRearAxle1RightWheel' */
30339 L4_MABX_B.SFunction1_o5_n5 = L4_MABX_P.RlativeSpeedRearAxle1RightWheel;
30340
30341 /* SystemInitialize for Outport: '<S521>/RelativeSpeedRearAxle2LeftWheel' */
30342 L4_MABX_B.SFunction1_o6_g5 = L4_MABX_P.RelativeSpeedRearAxle2LeftWheel;
30343
30344 /* SystemInitialize for Outport: '<S521>/RlativeSpeedRearAxle2RightWheel' */
30345 L4_MABX_B.SFunction1_o7_gm = L4_MABX_P.RlativeSpeedRearAxle2RightWheel;
30346
30347 /* SystemInitialize for Outport: '<S521>/RX status' */
30348 L4_MABX_B.SFunction1_o8_mh = L4_MABX_P.RXstatus_Y0_nm;
30349
30350 /* SystemInitialize for Outport: '<S521>/RX time' */
30351 L4_MABX_B.SFunction1_o9_gl = L4_MABX_P.RXtime_Y0_l;
30352
30353 /* SystemInitialize for Outport: '<S521>/RX delta time' */
30354 L4_MABX_B.SFunction1_o10_hp = L4_MABX_P.RXdeltatime_Y0_m;
30355
30356 /* End of SystemInitialize for SubSystem: '<S520>/EBC2_0B1' */
30357
30358 /* SystemInitialize for Enabled SubSystem: '<S578>/HRW_0B' */
30359 /* SystemInitialize for Outport: '<S579>/FrontAxleLeftWheelSpeed' */
30360 L4_MABX_B.SFunction1_o1_lo = L4_MABX_P.FrontAxleLeftWheelSpeed_Y0;
30361
30362 /* SystemInitialize for Outport: '<S579>/FrontAxleRightWheelSpeed' */
30363 L4_MABX_B.SFunction1_o2_pw = L4_MABX_P.FrontAxleRightWheelSpeed_Y0;
30364
30365 /* SystemInitialize for Outport: '<S579>/RearAxleLeftWheelSpeed' */
30366 L4_MABX_B.SFunction1_o3_ip = L4_MABX_P.RearAxleLeftWheelSpeed_Y0;
30367
30368 /* SystemInitialize for Outport: '<S579>/RearAxleRightWheelSpeed' */
30369 L4_MABX_B.SFunction1_o4_az = L4_MABX_P.RearAxleRightWheelSpeed_Y0;
30370
30371 /* SystemInitialize for Outport: '<S579>/RX status' */
30372 L4_MABX_B.SFunction1_o5_e2 = L4_MABX_P.RXstatus_Y0_iw;
30373
30374 /* SystemInitialize for Outport: '<S579>/RX time' */
30375 L4_MABX_B.SFunction1_o6_os = L4_MABX_P.RXtime_Y0_mp;
30376
30377 /* SystemInitialize for Outport: '<S579>/RX delta time' */
30378 L4_MABX_B.SFunction1_o7_m0 = L4_MABX_P.RXdeltatime_Y0_pc;
30379
30380 /* End of SystemInitialize for SubSystem: '<S578>/HRW_0B' */
30381
30382 /* SystemInitialize for Enabled SubSystem: '<S518>/EBC1_0B' */
30383 /* SystemInitialize for Outport: '<S519>/ASREngCtrlActive' */
30384 L4_MABX_B.SFunction1_o1_oq = L4_MABX_P.ASREngCtrlActive_Y0_p;
30385
30386 /* SystemInitialize for Outport: '<S519>/ASRBrakeCtrlActive' */
30387 L4_MABX_B.SFunction1_o2_iw = L4_MABX_P.ASRBrakeCtrlActive_Y0_n;
30388
30389 /* SystemInitialize for Outport: '<S519>/AntiLockBrakingActive' */
30390 L4_MABX_B.SFunction1_o3_ix = L4_MABX_P.AntiLockBrakingActive_Y0_l;
30391
30392 /* SystemInitialize for Outport: '<S519>/EBSBrakeSwitch' */
30393 L4_MABX_B.SFunction1_o4_h5 = L4_MABX_P.EBSBrakeSwitch_Y0_a;
30394
30395 /* SystemInitialize for Outport: '<S519>/BrakePedalPos' */
30396 L4_MABX_B.SFunction1_o5_fy = L4_MABX_P.BrakePedalPos_Y0_p;
30397
30398 /* SystemInitialize for Outport: '<S519>/ABSOffroadSwitch' */
30399 L4_MABX_B.SFunction1_o6_ok = L4_MABX_P.ABSOffroadSwitch_Y0_g;
30400
30401 /* SystemInitialize for Outport: '<S519>/ASROffroadSwitch' */
30402 L4_MABX_B.SFunction1_o7_f = L4_MABX_P.ASROffroadSwitch_Y0_c;
30403
30404 /* SystemInitialize for Outport: '<S519>/ASRHillHolderSwitch' */
30405 L4_MABX_B.SFunction1_o8_ge = L4_MABX_P.ASRHillHolderSwitch_Y0_b;
30406
30407 /* SystemInitialize for Outport: '<S519>/TractionCtrlOverrideSwitch' */
30408 L4_MABX_B.SFunction1_o9_er = L4_MABX_P.TractionCtrlOverrideSwitch_Y0_f;
30409
30410 /* SystemInitialize for Outport: '<S519>/AccelInterlockSwitch' */
30411 L4_MABX_B.SFunction1_o10_a = L4_MABX_P.AccelInterlockSwitch_Y0_e;
30412
30413 /* SystemInitialize for Outport: '<S519>/EngDerateSwitch' */
30414 L4_MABX_B.SFunction1_o11_f = L4_MABX_P.EngDerateSwitch_Y0_j;
30415
30416 /* SystemInitialize for Outport: '<S519>/EngAuxShutdownSwitch' */
30417 L4_MABX_B.SFunction1_o12_e = L4_MABX_P.EngAuxShutdownSwitch_Y0_m;
30418
30419 /* SystemInitialize for Outport: '<S519>/RemoteAccelEnableSwitch' */
30420 L4_MABX_B.SFunction1_o13_o = L4_MABX_P.RemoteAccelEnableSwitch_Y0_l;
30421
30422 /* SystemInitialize for Outport: '<S519>/EngRetarderSelection' */
30423 L4_MABX_B.SFunction1_o14_o = L4_MABX_P.EngRetarderSelection_Y0_i;
30424
30425 /* SystemInitialize for Outport: '<S519>/ABSFullyOperational' */
30426 L4_MABX_B.SFunction1_o15_p = L4_MABX_P.ABSFullyOperational_Y0_o;
30427
30428 /* SystemInitialize for Outport: '<S519>/EBSRedWarningSignal' */
30429 L4_MABX_B.SFunction1_o16_k = L4_MABX_P.EBSRedWarningSignal_Y0_g;
30430
30431 /* SystemInitialize for Outport: '<S519>/ABS_EBSAmberWarningSignal' */
30432 L4_MABX_B.SFunction1_o17_e = L4_MABX_P.ABS_EBSAmberWarningSignal_Y0_f;
30433
30434 /* SystemInitialize for Outport: '<S519>/ATC_ASRInformationSignal' */
30435 L4_MABX_B.SFunction1_o18_b = L4_MABX_P.ATC_ASRInformationSignal_Y0_p;
30436
30437 /* SystemInitialize for Outport: '<S519>/SrcAddrssOfCtrllngDvcFrBrkCntrl' */
30438 L4_MABX_B.SFunction1_o19_j = L4_MABX_P.SrcAddrssOfCtrllngDvcFrBrkCnt_n;
30439
30440 /* SystemInitialize for Outport: '<S519>/HaltBrakeSwitch' */
30441 L4_MABX_B.SFunction1_o20_a = L4_MABX_P.HaltBrakeSwitch_Y0_c;
30442
30443 /* SystemInitialize for Outport: '<S519>/TrailerABSStatus' */
30444 L4_MABX_B.SFunction1_o21_o = L4_MABX_P.TrailerABSStatus_Y0_o;
30445
30446 /* SystemInitialize for Outport: '<S519>/TrctrMntdTrilerABSWarningSignal' */
30447 L4_MABX_B.SFunction1_o22_p = L4_MABX_P.TrctrMntdTrilerABSWarningSign_l;
30448
30449 /* SystemInitialize for Outport: '<S519>/RX status' */
30450 L4_MABX_B.SFunction1_o23_f = L4_MABX_P.RXstatus_Y0_fm;
30451
30452 /* SystemInitialize for Outport: '<S519>/RX time' */
30453 L4_MABX_B.SFunction1_o24_k = L4_MABX_P.RXtime_Y0_a;
30454
30455 /* SystemInitialize for Outport: '<S519>/RX delta time' */
30456 L4_MABX_B.SFunction1_o25_p = L4_MABX_P.RXdeltatime_Y0_i;
30457
30458 /* End of SystemInitialize for SubSystem: '<S518>/EBC1_0B' */
30459
30460 /* SystemInitialize for Enabled SubSystem: '<S573>/ETC2_031' */
30461 /* SystemInitialize for Outport: '<S574>/SPN524_TransSelectedGear' */
30462 L4_MABX_B.SFunction1_o1_f1 = L4_MABX_P.SPN524_TransSelectedGear_Y0;
30463
30464 /* SystemInitialize for Outport: '<S574>/SPN526_TransActualGearRatio' */
30465 L4_MABX_B.SFunction1_o2_er = L4_MABX_P.SPN526_TransActualGearRatio_Y0;
30466
30467 /* SystemInitialize for Outport: '<S574>/SPN523_TransCurrentGear' */
30468 L4_MABX_B.SFunction1_o3_lh = L4_MABX_P.SPN523_TransCurrentGear_Y0;
30469
30470 /* SystemInitialize for Outport: '<S574>/RX status' */
30471 L4_MABX_B.SFunction1_o4_ls = L4_MABX_P.RXstatus_Y0_mv;
30472
30473 /* SystemInitialize for Outport: '<S574>/RX time' */
30474 L4_MABX_B.SFunction1_o5_dc = L4_MABX_P.RXtime_Y0_ms;
30475
30476 /* SystemInitialize for Outport: '<S574>/RX delta time' */
30477 L4_MABX_B.SFunction1_o6_k = L4_MABX_P.RXdeltatime_Y0_mg;
30478
30479 /* End of SystemInitialize for SubSystem: '<S573>/ETC2_031' */
30480
30481 /* SystemInitialize for Enabled SubSystem: '<S567>/EEC1_001' */
30482 /* SystemInitialize for Outport: '<S568>/EngTorqueMode' */
30483 L4_MABX_B.SFunction1_o1_od = L4_MABX_P.EngTorqueMode_Y0;
30484
30485 /* SystemInitialize for Outport: '<S568>/ActlEngPrcntTrqueHighResolution' */
30486 L4_MABX_B.SFunction1_o2_p0 = L4_MABX_P.ActlEngPrcntTrqueHighResolution;
30487
30488 /* SystemInitialize for Outport: '<S568>/DriversDemandEngPercentTorque' */
30489 L4_MABX_B.SFunction1_o3_n1 = L4_MABX_P.DriversDemandEngPercentTorque_Y;
30490
30491 /* SystemInitialize for Outport: '<S568>/ActualEngPercentTorque' */
30492 L4_MABX_B.SFunction1_o4_j0 = L4_MABX_P.ActualEngPercentTorque_Y0;
30493
30494 /* SystemInitialize for Outport: '<S568>/EngSpeed' */
30495 L4_MABX_B.SFunction1_o5_mg = L4_MABX_P.EngSpeed_Y0;
30496
30497 /* SystemInitialize for Outport: '<S568>/SrcAddrssOfCtrllngDvcFrEngCntrl' */
30498 L4_MABX_B.SFunction1_o6_k3 = L4_MABX_P.SrcAddrssOfCtrllngDvcFrEngCntrl;
30499
30500 /* SystemInitialize for Outport: '<S568>/EngStarterMode' */
30501 L4_MABX_B.SFunction1_o7_ow = L4_MABX_P.EngStarterMode_Y0;
30502
30503 /* SystemInitialize for Outport: '<S568>/EngDemandPercentTorque' */
30504 L4_MABX_B.SFunction1_o8_gl = L4_MABX_P.EngDemandPercentTorque_Y0;
30505
30506 /* SystemInitialize for Outport: '<S568>/RX status' */
30507 L4_MABX_B.SFunction1_o9_nu = L4_MABX_P.RXstatus_Y0_o;
30508
30509 /* SystemInitialize for Outport: '<S568>/RX time' */
30510 L4_MABX_B.SFunction1_o10_f = L4_MABX_P.RXtime_Y0_ek;
30511
30512 /* SystemInitialize for Outport: '<S568>/RX delta time' */
30513 L4_MABX_B.SFunction1_o11_k = L4_MABX_P.RXdeltatime_Y0_pn1;
30514
30515 /* End of SystemInitialize for SubSystem: '<S567>/EEC1_001' */
30516
30517 /* SystemInitialize for Enabled SubSystem: '<S571>/EEC3_001' */
30518 /* SystemInitialize for Outport: '<S572>/SPN514_NominalFrictionPercentTorque' */
30519 L4_MABX_B.SFunction1_o1_lm = L4_MABX_P.SPN514_NominalFrictionPercentTo;
30520
30521 /* SystemInitialize for Outport: '<S572>/SPN2978_EstEngParasiticLossesPercentTorque' */
30522 L4_MABX_B.SFunction1_o2_hd = L4_MABX_P.SPN2978_EstEngParasiticLossesPe;
30523
30524 /* SystemInitialize for Outport: '<S572>/RX status' */
30525 L4_MABX_B.SFunction1_o3_m3 = L4_MABX_P.RXstatus_Y0_ha;
30526
30527 /* SystemInitialize for Outport: '<S572>/RX time' */
30528 L4_MABX_B.SFunction1_o4_e0 = L4_MABX_P.RXtime_Y0_o;
30529
30530 /* SystemInitialize for Outport: '<S572>/RX delta time' */
30531 L4_MABX_B.SFunction1_o5_g = L4_MABX_P.RXdeltatime_Y0_j4;
30532
30533 /* End of SystemInitialize for SubSystem: '<S571>/EEC3_001' */
30534
30535 /* SystemInitialize for Enabled SubSystem: '<S514>/CVW_0B1' */
30536 /* SystemInitialize for Outport: '<S515>/SPN1760_GrossCombinationVehicleWeight' */
30537 L4_MABX_B.SFunction1_o1_b = L4_MABX_P.SPN1760_GrossCombinationVehicle;
30538
30539 /* SystemInitialize for Outport: '<S515>/RX status' */
30540 L4_MABX_B.SFunction1_o2_iqn = L4_MABX_P.RXstatus_Y0_k;
30541
30542 /* SystemInitialize for Outport: '<S515>/RX time' */
30543 L4_MABX_B.SFunction1_o3_nj = L4_MABX_P.RXtime_Y0_g;
30544
30545 /* SystemInitialize for Outport: '<S515>/RX delta time' */
30546 L4_MABX_B.SFunction1_o4_ex = L4_MABX_P.RXdeltatime_Y0_ar;
30547
30548 /* End of SystemInitialize for SubSystem: '<S514>/CVW_0B1' */
30549
30550 /* SystemInitialize for Enabled SubSystem: '<S495>/ACC1_2A_' */
30551 /* SystemInitialize for Outport: '<S496>/SpeedOfForwardVehicle' */
30552 L4_MABX_B.SFunction1_o1_po = L4_MABX_P.SpeedOfForwardVehicle_Y0;
30553
30554 /* SystemInitialize for Outport: '<S496>/DistanceToForwardVehicle' */
30555 L4_MABX_B.SFunction1_o2_nw = L4_MABX_P.DistanceToForwardVehicle_Y0;
30556
30557 /* SystemInitialize for Outport: '<S496>/AdaptiveCruiseCtrlSetSpeed' */
30558 L4_MABX_B.SFunction1_o3_hn = L4_MABX_P.AdaptiveCruiseCtrlSetSpeed_Y0;
30559
30560 /* SystemInitialize for Outport: '<S496>/AdaptiveCruiseCtrlMode' */
30561 L4_MABX_B.SFunction1_o4_p4l = L4_MABX_P.AdaptiveCruiseCtrlMode_Y0;
30562
30563 /* SystemInitialize for Outport: '<S496>/AdptveCruiseCtrlSetDistanceMode' */
30564 L4_MABX_B.SFunction1_o5_mp = L4_MABX_P.AdptveCruiseCtrlSetDistanceMode;
30565
30566 /* SystemInitialize for Outport: '<S496>/RoadCurvature' */
30567 L4_MABX_B.SFunction1_o6_iy = L4_MABX_P.RoadCurvature_Y0;
30568
30569 /* SystemInitialize for Outport: '<S496>/ACCTargetDetected' */
30570 L4_MABX_B.SFunction1_o7_oe = L4_MABX_P.ACCTargetDetected_Y0;
30571
30572 /* SystemInitialize for Outport: '<S496>/ACCSystemShutoffWarning' */
30573 L4_MABX_B.SFunction1_o8_c5 = L4_MABX_P.ACCSystemShutoffWarning_Y0;
30574
30575 /* SystemInitialize for Outport: '<S496>/ACCDistanceAlertSignal' */
30576 L4_MABX_B.SFunction1_o9_ix = L4_MABX_P.ACCDistanceAlertSignal_Y0;
30577
30578 /* SystemInitialize for Outport: '<S496>/ForwardCollisionWarning' */
30579 L4_MABX_B.SFunction1_o10_at = L4_MABX_P.ForwardCollisionWarning_Y0;
30580
30581 /* SystemInitialize for Outport: '<S496>/RX status' */
30582 L4_MABX_B.SFunction1_o11_ex = L4_MABX_P.RXstatus_Y0_i;
30583
30584 /* SystemInitialize for Outport: '<S496>/RX time' */
30585 L4_MABX_B.SFunction1_o12_l = L4_MABX_P.RXtime_Y0_m;
30586
30587 /* SystemInitialize for Outport: '<S496>/RX delta time' */
30588 L4_MABX_B.SFunction1_o13_h = L4_MABX_P.RXdeltatime_Y0_p;
30589
30590 /* End of SystemInitialize for SubSystem: '<S495>/ACC1_2A_' */
30591
30592 /* SystemInitialize for Enabled SubSystem: '<S477>/CAN_TYPE1_RX_M1_C1' */
30593 /* SystemInitialize for Outport: '<S479>/byte1' */
30594 L4_MABX_B.SFunction1_o1_g = L4_MABX_P.byte1_Y0;
30595
30596 /* SystemInitialize for Outport: '<S479>/byte2' */
30597 L4_MABX_B.SFunction1_o2_jr = L4_MABX_P.byte2_Y0;
30598
30599 /* SystemInitialize for Outport: '<S479>/byte3' */
30600 L4_MABX_B.SFunction1_o3_bl = L4_MABX_P.byte3_Y0;
30601
30602 /* SystemInitialize for Outport: '<S479>/byte4' */
30603 L4_MABX_B.SFunction1_o4_nb = L4_MABX_P.byte4_Y0;
30604
30605 /* SystemInitialize for Outport: '<S479>/byte5' */
30606 L4_MABX_B.SFunction1_o5_o3 = L4_MABX_P.byte5_Y0;
30607
30608 /* SystemInitialize for Outport: '<S479>/byte6' */
30609 L4_MABX_B.SFunction1_o6_ny = L4_MABX_P.byte6_Y0;
30610
30611 /* SystemInitialize for Outport: '<S479>/byte7' */
30612 L4_MABX_B.SFunction1_o7_n = L4_MABX_P.byte7_Y0;
30613
30614 /* SystemInitialize for Outport: '<S479>/byte8' */
30615 L4_MABX_B.SFunction1_o8_fx = L4_MABX_P.byte8_Y0;
30616
30617 /* SystemInitialize for Outport: '<S479>/RX status' */
30618 L4_MABX_B.SFunction1_o9_dj = L4_MABX_P.RXstatus_Y0;
30619
30620 /* SystemInitialize for Outport: '<S479>/RX time' */
30621 L4_MABX_B.SFunction1_o10_cs = L4_MABX_P.RXtime_Y0;
30622
30623 /* SystemInitialize for Outport: '<S479>/RX delta time' */
30624 L4_MABX_B.SFunction1_o11_mb = L4_MABX_P.RXdeltatime_Y0;
30625
30626 /* End of SystemInitialize for SubSystem: '<S477>/CAN_TYPE1_RX_M1_C1' */
30627
30628 /* SystemInitialize for Enabled SubSystem: '<S471>/Decode_TPCM_BAM' */
30629 /* SystemInitialize for Outport: '<S689>/Out' */
30630 L4_MABX_B.SPN2556_ControlByte_c = (uint8_T)L4_MABX_P.Out_Y0_c;
30631 L4_MABX_B.DataType_aya = (uint16_T)L4_MABX_P.Out_Y0_c;
30632 L4_MABX_B.SPN2568_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_c;
30633 L4_MABX_B.DataType_fh = (uint32_T)L4_MABX_P.Out_Y0_c;
30634
30635 /* End of SystemInitialize for SubSystem: '<S471>/Decode_TPCM_BAM' */
30636
30637 /* SystemInitialize for Enabled SubSystem: '<S486>/CAN_TYPE1_RX_M1_C1' */
30638 /* SystemInitialize for Outport: '<S488>/byte1' */
30639 L4_MABX_B.SFunction1_o1_jl = L4_MABX_P.byte1_Y0_a;
30640
30641 /* SystemInitialize for Outport: '<S488>/byte2' */
30642 L4_MABX_B.SFunction1_o2_k4 = L4_MABX_P.byte2_Y0_g;
30643
30644 /* SystemInitialize for Outport: '<S488>/byte3' */
30645 L4_MABX_B.SFunction1_o3_kd = L4_MABX_P.byte3_Y0_f;
30646
30647 /* SystemInitialize for Outport: '<S488>/byte4' */
30648 L4_MABX_B.SFunction1_o4_ld = L4_MABX_P.byte4_Y0_a;
30649
30650 /* SystemInitialize for Outport: '<S488>/byte5' */
30651 L4_MABX_B.SFunction1_o5_hu = L4_MABX_P.byte5_Y0_e;
30652
30653 /* SystemInitialize for Outport: '<S488>/byte6' */
30654 L4_MABX_B.SFunction1_o6_iw = L4_MABX_P.byte6_Y0_f;
30655
30656 /* SystemInitialize for Outport: '<S488>/byte7' */
30657 L4_MABX_B.SFunction1_o7_iw = L4_MABX_P.byte7_Y0_o;
30658
30659 /* SystemInitialize for Outport: '<S488>/byte8' */
30660 L4_MABX_B.SFunction1_o8_ju = L4_MABX_P.byte8_Y0_m;
30661
30662 /* SystemInitialize for Outport: '<S488>/RX status' */
30663 L4_MABX_B.SFunction1_o9_d4 = L4_MABX_P.RXstatus_Y0_n;
30664
30665 /* SystemInitialize for Outport: '<S488>/RX time' */
30666 L4_MABX_B.SFunction1_o10_atw = L4_MABX_P.RXtime_Y0_p;
30667
30668 /* SystemInitialize for Outport: '<S488>/RX delta time' */
30669 L4_MABX_B.SFunction1_o11_da = L4_MABX_P.RXdeltatime_Y0_j;
30670
30671 /* End of SystemInitialize for SubSystem: '<S486>/CAN_TYPE1_RX_M1_C1' */
30672
30673 /* SystemInitialize for S-Function (rti_commonblock): '<S850>/S-Function1' incorporates:
30674 * SubSystem: '<S419>/IncrementTimer'
30675 */
30676 L4_MABX_IncrementTimer_Init();
30677
30678 /* End of SystemInitialize for S-Function (rti_commonblock): '<S850>/S-Function1' */
30679
30680 /* SystemInitialize for Enabled SubSystem: '<S438>/CAN_RX_EC1_00' */
30681 /* SystemInitialize for Enabled SubSystem: '<S522>/Decode' */
30682 /* InitializeConditions for UnitDelay: '<S525>/Unit_Delay' */
30683 L4_MABX_DW.Unit_Delay_DSTATE_o = L4_MABX_P.Unit_Delay_InitialCondition_bh;
30684 for (i = 0; i < 39; i++) {
30685 /* InitializeConditions for UnitDelay: '<S522>/Unit Delay' */
30686 L4_MABX_DW.UnitDelay_DSTATE_g[i] =
30687 L4_MABX_P.UnitDelay_InitialCondition_co[i];
30688
30689 /* SystemInitialize for Outport: '<S525>/RawData' */
30690 L4_MABX_B.Inport_e[i] = L4_MABX_P.RawData_Y0;
30691 }
30692
30693 /* SystemInitialize for Outport: '<S525>/RX_time' */
30694 L4_MABX_B.timeStamp_p = L4_MABX_P.RX_time_Y0;
30695
30696 /* SystemInitialize for Outport: '<S525>/RX_delta_time' */
30697 L4_MABX_B.Subtract_gi = L4_MABX_P.RX_delta_time_Y0;
30698
30699 /* End of SystemInitialize for SubSystem: '<S522>/Decode' */
30700
30701 /* SystemInitialize for Outport: '<S522>/RX_status' */
30702 L4_MABX_B.RX_status_m = L4_MABX_P.RX_status_Y0;
30703
30704 /* End of SystemInitialize for SubSystem: '<S438>/CAN_RX_EC1_00' */
30705
30706 /* SystemInitialize for Enabled SubSystem: '<S644>/VDC1_0B_' */
30707 /* SystemInitialize for Outport: '<S645>/VDCInformationSignal' */
30708 L4_MABX_B.SFunction1_o1_ju = L4_MABX_P.VDCInformationSignal_Y0;
30709
30710 /* SystemInitialize for Outport: '<S645>/VDCFullyOperational' */
30711 L4_MABX_B.SFunction1_o2_f = L4_MABX_P.VDCFullyOperational_Y0;
30712
30713 /* SystemInitialize for Outport: '<S645>/VDCBrakeLightRq' */
30714 L4_MABX_B.SFunction1_o3_gz = L4_MABX_P.VDCBrakeLightRq_Y0;
30715
30716 /* SystemInitialize for Outport: '<S645>/ROPEngCtrlActive' */
30717 L4_MABX_B.SFunction1_o4_c = L4_MABX_P.ROPEngCtrlActive_Y0;
30718
30719 /* SystemInitialize for Outport: '<S645>/ROPBrakeCtrlActive' */
30720 L4_MABX_B.SFunction1_o5_c = L4_MABX_P.ROPBrakeCtrlActive_Y0;
30721
30722 /* SystemInitialize for Outport: '<S645>/YCEngCtrlActive' */
30723 L4_MABX_B.SFunction1_o6_o = L4_MABX_P.YCEngCtrlActive_Y0;
30724
30725 /* SystemInitialize for Outport: '<S645>/YCBrakeCtrlActive' */
30726 L4_MABX_B.SFunction1_o7_l = L4_MABX_P.YCBrakeCtrlActive_Y0;
30727
30728 /* SystemInitialize for Outport: '<S645>/RX status' */
30729 L4_MABX_B.SFunction1_o8_n = L4_MABX_P.RXstatus_Y0_me;
30730
30731 /* SystemInitialize for Outport: '<S645>/RX time' */
30732 L4_MABX_B.SFunction1_o9_l = L4_MABX_P.RXtime_Y0_ef;
30733
30734 /* SystemInitialize for Outport: '<S645>/RX delta time' */
30735 L4_MABX_B.SFunction1_o10 = L4_MABX_P.RXdeltatime_Y0_gc;
30736
30737 /* End of SystemInitialize for SubSystem: '<S644>/VDC1_0B_' */
30738
30739 /* SystemInitialize for Enabled SubSystem: '<S646>/VDC2_0B1' */
30740 /* SystemInitialize for Outport: '<S647>/SteerWheelAngle' */
30741 SteerWheelAngle = L4_MABX_P.SteerWheelAngle_Y0;
30742
30743 /* SystemInitialize for Outport: '<S647>/SteerWheelTurnCounter' */
30744 L4_MABX_B.SFunction1_o2_ix = L4_MABX_P.SteerWheelTurnCounter_Y0;
30745
30746 /* SystemInitialize for Outport: '<S647>/SteerWheelAngleSensorType' */
30747 L4_MABX_B.SFunction1_o3_dm = L4_MABX_P.SteerWheelAngleSensorType_Y0;
30748
30749 /* SystemInitialize for Outport: '<S647>/YawRate' */
30750 YawRate = L4_MABX_P.YawRate_Y0;
30751
30752 /* SystemInitialize for Outport: '<S647>/LateralAcceleration' */
30753 L4_MABX_B.SFunction1_o5_o = L4_MABX_P.LateralAcceleration_Y0;
30754
30755 /* SystemInitialize for Outport: '<S647>/LongitudinalAcceleration' */
30756 SPN1810_LongitudinalAcceleration = L4_MABX_P.LongitudinalAcceleration_Y0;
30757
30758 /* SystemInitialize for Outport: '<S647>/RX status' */
30759 L4_MABX_B.SFunction1_o7_m = L4_MABX_P.RXstatus_Y0_dr;
30760
30761 /* SystemInitialize for Outport: '<S647>/RX time' */
30762 L4_MABX_B.SFunction1_o8_l = L4_MABX_P.RXtime_Y0_lb;
30763
30764 /* SystemInitialize for Outport: '<S647>/RX delta time' */
30765 L4_MABX_B.SFunction1_o9 = L4_MABX_P.RXdeltatime_Y0_i5;
30766
30767 /* End of SystemInitialize for SubSystem: '<S646>/VDC2_0B1' */
30768
30769 /* SystemInitialize for Enabled SubSystem: '<S461>/CAN_RX_VI_00' */
30770 /* SystemInitialize for Enabled SubSystem: '<S650>/Decode' */
30771 /* InitializeConditions for UnitDelay: '<S653>/Unit_Delay' */
30772 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_P.Unit_Delay_InitialCondition_jz;
30773 for (i = 0; i < 17; i++) {
30774 /* InitializeConditions for UnitDelay: '<S650>/Unit Delay' */
30775 L4_MABX_DW.UnitDelay_DSTATE_o[i] =
30776 L4_MABX_P.UnitDelay_InitialCondition_lh[i];
30777
30778 /* SystemInitialize for Outport: '<S653>/RawData' */
30779 L4_MABX_B.Inport[i] = L4_MABX_P.RawData_Y0_b;
30780 }
30781
30782 /* SystemInitialize for Outport: '<S653>/RX_time' */
30783 L4_MABX_B.timeStamp = L4_MABX_P.RX_time_Y0_p;
30784
30785 /* SystemInitialize for Outport: '<S653>/RX_delta_time' */
30786 L4_MABX_B.Subtract_fx = L4_MABX_P.RX_delta_time_Y0_k;
30787
30788 /* End of SystemInitialize for SubSystem: '<S650>/Decode' */
30789
30790 /* SystemInitialize for Outport: '<S650>/RX_status' */
30791 L4_MABX_B.RX_status_lh = L4_MABX_P.RX_status_Y0_n;
30792
30793 /* End of SystemInitialize for SubSystem: '<S461>/CAN_RX_VI_00' */
30794
30795 /* SystemInitialize for Enabled SubSystem: '<S632>/SSI2_031' */
30796 /* SystemInitialize for Outport: '<S633>/PitchAngleExRange' */
30797 L4_MABX_B.SFunction1_o1_ms = L4_MABX_P.PitchAngleExRange_Y0;
30798
30799 /* SystemInitialize for Outport: '<S633>/RollAngleExRange' */
30800 L4_MABX_B.SFunction1_o2_ph = L4_MABX_P.RollAngleExRange_Y0;
30801
30802 /* SystemInitialize for Outport: '<S633>/PitchAngleExRangeCompensation' */
30803 L4_MABX_B.SFunction1_o3_nr = L4_MABX_P.PitchAngleExRangeCompensation_Y;
30804
30805 /* SystemInitialize for Outport: '<S633>/PitchAngleExRangeFigureOfMerit' */
30806 L4_MABX_B.SFunction1_o4_e2 = L4_MABX_P.PitchAngleExRangeFigureOfMerit_;
30807
30808 /* SystemInitialize for Outport: '<S633>/RollAngleExRangeCompensation' */
30809 L4_MABX_B.SFunction1_o5_jy = L4_MABX_P.RollAngleExRangeCompensation_Y0;
30810
30811 /* SystemInitialize for Outport: '<S633>/RollAngleExRangeFigureOfMerit' */
30812 L4_MABX_B.SFunction1_o6_hx = L4_MABX_P.RollAngleExRangeFigureOfMerit_Y;
30813
30814 /* SystemInitialize for Outport: '<S633>/RllAndPtchExRngMsurementLatency' */
30815 L4_MABX_B.SFunction1_o7_i = L4_MABX_P.RllAndPtchExRngMsurementLatency;
30816
30817 /* SystemInitialize for Outport: '<S633>/RX status' */
30818 L4_MABX_B.SFunction1_o8_e = L4_MABX_P.RXstatus_Y0_gg;
30819
30820 /* SystemInitialize for Outport: '<S633>/RX time' */
30821 L4_MABX_B.SFunction1_o9_e = L4_MABX_P.RXtime_Y0_hc;
30822
30823 /* SystemInitialize for Outport: '<S633>/RX delta time' */
30824 L4_MABX_B.SFunction1_o10_i = L4_MABX_P.RXdeltatime_Y0_g3;
30825
30826 /* End of SystemInitialize for SubSystem: '<S632>/SSI2_031' */
30827
30828 /* SystemInitialize for Enabled SubSystem: '<S623>/PX2_LanePosEst' */
30829 /* SystemInitialize for Outport: '<S626>/PX2_LanePosEstAngle' */
30830 L4_MABX_B.SFunction1_o1_in = L4_MABX_P.PX2_LanePosEstAngle_Y0;
30831
30832 /* SystemInitialize for Outport: '<S626>/PX2_LanePosEstNumPoints' */
30833 L4_MABX_B.SFunction1_o2_nr = L4_MABX_P.PX2_LanePosEstNumPoints_Y0;
30834
30835 /* SystemInitialize for Outport: '<S626>/PX2_LanePosEstPosition' */
30836 L4_MABX_B.SFunction1_o3_km = L4_MABX_P.PX2_LanePosEstPosition_Y0;
30837
30838 /* SystemInitialize for Outport: '<S626>/PX2_LanePosEstNumLanes' */
30839 L4_MABX_B.SFunction1_o4_p1 = L4_MABX_P.PX2_LanePosEstNumLanes_Y0;
30840
30841 /* SystemInitialize for Outport: '<S626>/RX status' */
30842 L4_MABX_B.SFunction1_o5_l = L4_MABX_P.RXstatus_Y0_fl;
30843
30844 /* SystemInitialize for Outport: '<S626>/RX time' */
30845 L4_MABX_B.SFunction1_o6_fd = L4_MABX_P.RXtime_Y0_jp;
30846
30847 /* SystemInitialize for Outport: '<S626>/RX delta time' */
30848 L4_MABX_B.SFunction1_o7_ls = L4_MABX_P.RXdeltatime_Y0_f4;
30849
30850 /* End of SystemInitialize for SubSystem: '<S623>/PX2_LanePosEst' */
30851
30852 /* SystemInitialize for Enabled SubSystem: '<S630>/Bendix_Prop2C2_Status_30' */
30853 /* SystemInitialize for Outport: '<S631>/PressureP4' */
30854 L4_MABX_B.SFunction1_o1_ak = L4_MABX_P.PressureP4_Y0;
30855
30856 /* SystemInitialize for Outport: '<S631>/PressureP1' */
30857 L4_MABX_B.SFunction1_o2_nc = L4_MABX_P.PressureP1_Y0;
30858
30859 /* SystemInitialize for Outport: '<S631>/PressureP21' */
30860 L4_MABX_B.SFunction1_o3_fd = L4_MABX_P.PressureP21_Y0;
30861
30862 /* SystemInitialize for Outport: '<S631>/PressureP22' */
30863 L4_MABX_B.SFunction1_o4_ka = L4_MABX_P.PressureP22_Y0;
30864
30865 /* SystemInitialize for Outport: '<S631>/PressureP42' */
30866 L4_MABX_B.SFunction1_o5_m = L4_MABX_P.PressureP42_Y0;
30867
30868 /* SystemInitialize for Outport: '<S631>/XPR1ControlStatus' */
30869 L4_MABX_B.SFunction1_o6_fc = L4_MABX_P.XPR1ControlStatus_Y0;
30870
30871 /* SystemInitialize for Outport: '<S631>/XPR2ControlStatus' */
30872 L4_MABX_B.SFunction1_o7_jt = L4_MABX_P.XPR2ControlStatus_Y0;
30873
30874 /* SystemInitialize for Outport: '<S631>/XPR3ControlStatus' */
30875 L4_MABX_B.SFunction1_o8_j = L4_MABX_P.XPR3ControlStatus_Y0;
30876
30877 /* SystemInitialize for Outport: '<S631>/XPRErrorState' */
30878 L4_MABX_B.SFunction1_o9_ed = L4_MABX_P.XPRErrorState_Y0;
30879
30880 /* SystemInitialize for Outport: '<S631>/XPRControlMode' */
30881 L4_MABX_B.SFunction1_o10_c = L4_MABX_P.XPRControlMode_Y0;
30882
30883 /* SystemInitialize for Outport: '<S631>/RX status' */
30884 L4_MABX_B.SFunction1_o11_a = L4_MABX_P.RXstatus_Y0_ef;
30885
30886 /* SystemInitialize for Outport: '<S631>/RX time' */
30887 L4_MABX_B.SFunction1_o12_p = L4_MABX_P.RXtime_Y0_fr;
30888
30889 /* SystemInitialize for Outport: '<S631>/RX delta time' */
30890 L4_MABX_B.SFunction1_o13_e = L4_MABX_P.RXdeltatime_Y0_hq;
30891
30892 /* End of SystemInitialize for SubSystem: '<S630>/Bendix_Prop2C2_Status_30' */
30893
30894 /* SystemInitialize for Enabled SubSystem: '<S580>/PropB_REAX_2_13' */
30895 /* SystemInitialize for Outport: '<S582>/PropB_REAX_2_ActualHandwheelPos' */
30896 L4_MABX_B.SFunction1_o1_ps = L4_MABX_P.PropB_REAX_2_ActualHandwheelPos;
30897
30898 /* SystemInitialize for Outport: '<S582>/PropB_REAX_2_EchoedStrWhlPos' */
30899 L4_MABX_B.SFunction1_o2_onq = L4_MABX_P.PropB_REAX_2_EchoedStrWhlPos_Y0;
30900
30901 /* SystemInitialize for Outport: '<S582>/RX status' */
30902 L4_MABX_B.SFunction1_o3_mo = L4_MABX_P.RXstatus_Y0_kt;
30903
30904 /* SystemInitialize for Outport: '<S582>/RX time' */
30905 L4_MABX_B.SFunction1_o4_bh = L4_MABX_P.RXtime_Y0_ob;
30906
30907 /* SystemInitialize for Outport: '<S582>/RX delta time' */
30908 L4_MABX_B.SFunction1_o5_ef = L4_MABX_P.RXdeltatime_Y0_ir;
30909
30910 /* End of SystemInitialize for SubSystem: '<S580>/PropB_REAX_2_13' */
30911
30912 /* SystemInitialize for Enabled SubSystem: '<S581>/PropB_REAX_2_13' */
30913 /* SystemInitialize for Outport: '<S583>/PropB_REAX_2_ActualHandwheelPos' */
30914 L4_MABX_B.SFunction1_o1_cj = L4_MABX_P.PropB_REAX_2_ActualHandwheelP_o;
30915
30916 /* SystemInitialize for Outport: '<S583>/PropB_REAX_2_EchoedStrWhlPos' */
30917 L4_MABX_B.SFunction1_o2_h5 = L4_MABX_P.PropB_REAX_2_EchoedStrWhlPos__f;
30918
30919 /* SystemInitialize for Outport: '<S583>/RX status' */
30920 L4_MABX_B.SFunction1_o3_m4 = L4_MABX_P.RXstatus_Y0_d;
30921
30922 /* SystemInitialize for Outport: '<S583>/RX time' */
30923 L4_MABX_B.SFunction1_o4_gp = L4_MABX_P.RXtime_Y0_lh;
30924
30925 /* SystemInitialize for Outport: '<S583>/RX delta time' */
30926 L4_MABX_B.SFunction1_o5_i = L4_MABX_P.RXdeltatime_Y0_i1;
30927
30928 /* End of SystemInitialize for SubSystem: '<S581>/PropB_REAX_2_13' */
30929
30930 /* SystemInitialize for Atomic SubSystem: '<S65>/Task_10ms' */
30931 /* InitializeConditions for UnitDelay: '<S102>/Delay Input1' */
30932 L4_MABX_DW.DelayInput1_DSTATE_j = L4_MABX_P.DetectRisePositive_vinit;
30933
30934 /* InitializeConditions for UnitDelay: '<S76>/Unit_Delay' */
30935 L4_MABX_DW.Unit_Delay_DSTATE_fv = L4_MABX_P.Unit_Delay_InitialCondition_jn;
30936
30937 /* InitializeConditions for UnitDelay: '<S97>/Unit Delay1' */
30938 L4_MABX_DW.UnitDelay1_DSTATE_m = L4_MABX_P.UnitDelay1_InitialCondition;
30939
30940 /* InitializeConditions for UnitDelay: '<S98>/Delay Input1' */
30941 L4_MABX_DW.DelayInput1_DSTATE_d = L4_MABX_P.DetectFallNonpositive_vinit;
30942
30943 /* InitializeConditions for UnitDelay: '<S97>/Unit Delay' */
30944 L4_MABX_DW.UnitDelay_DSTATE_b1 = L4_MABX_P.UnitDelay_InitialCondition_b;
30945
30946 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
30947 L4_MABX_DW.TmpRTBAtSignalConversion1Inport =
30948 L4_MABX_P.TmpRTBAtSignalConversion1Inport;
30949
30950 /* InitializeConditions for UnitDelay: '<S391>/Unit_Delay' */
30951 L4_MABX_DW.Unit_Delay_DSTATE_cx = L4_MABX_P.Unit_Delay_InitialCondition_b1;
30952
30953 /* InitializeConditions for UnitDelay: '<S392>/Unit_Delay' */
30954 L4_MABX_DW.Unit_Delay_DSTATE_d0 = L4_MABX_P.Unit_Delay_InitialCondition_gz;
30955
30956 /* InitializeConditions for UnitDelay: '<S349>/Unit_Delay' */
30957 L4_MABX_DW.Unit_Delay_DSTATE_e = L4_MABX_P.Unit_Delay_InitialCondition_i;
30958
30959 /* InitializeConditions for UnitDelay: '<S396>/FixPt Unit Delay2' */
30960 L4_MABX_DW.FixPtUnitDelay2_DSTATE_a =
30961 L4_MABX_P.FixPtUnitDelay2_InitialCondi_f5;
30962
30963 /* InitializeConditions for UnitDelay: '<S396>/FixPt Unit Delay1' */
30964 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hj =
30965 L4_MABX_P.FixPtUnitDelay1_InitialCondit_l;
30966
30967 /* InitializeConditions for UnitDelay: '<S393>/Unit_Delay' */
30968 L4_MABX_DW.Unit_Delay_DSTATE_m = L4_MABX_P.Unit_Delay_InitialCondition_hae;
30969
30970 /* InitializeConditions for UnitDelay: '<S380>/Unit_Delay' */
30971 L4_MABX_DW.Unit_Delay_DSTATE_iy = L4_MABX_P.Unit_Delay_InitialCondition_a;
30972
30973 /* InitializeConditions for UnitDelay: '<S381>/Unit_Delay' */
30974 L4_MABX_DW.Unit_Delay_DSTATE_mv = L4_MABX_P.Unit_Delay_InitialCondition_gt;
30975
30976 /* InitializeConditions for UnitDelay: '<S347>/Unit_Delay' */
30977 L4_MABX_DW.Unit_Delay_DSTATE_g = L4_MABX_P.Unit_Delay_InitialCondition_fb;
30978
30979 /* InitializeConditions for UnitDelay: '<S385>/FixPt Unit Delay2' */
30980 L4_MABX_DW.FixPtUnitDelay2_DSTATE_i =
30981 L4_MABX_P.FixPtUnitDelay2_InitialCondi_po;
30982
30983 /* InitializeConditions for UnitDelay: '<S385>/FixPt Unit Delay1' */
30984 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq =
30985 L4_MABX_P.FixPtUnitDelay1_InitialCondit_d;
30986
30987 /* InitializeConditions for UnitDelay: '<S382>/Unit_Delay' */
30988 L4_MABX_DW.Unit_Delay_DSTATE_b = L4_MABX_P.Unit_Delay_InitialCondition_c;
30989
30990 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
30991 L4_MABX_DW.TmpRTBAtSignalConversion3Inport =
30992 L4_MABX_P.TmpRTBAtSignalConversion3Inport;
30993
30994 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
30995 L4_MABX_DW.TmpRTBAtSignalConversion2Inport =
30996 L4_MABX_P.TmpRTBAtSignalConversion2Inport;
30997
30998 /* InitializeConditions for UnitDelay: '<S362>/Unit_Delay' */
30999 L4_MABX_DW.Unit_Delay_DSTATE_bw = L4_MABX_P.Unit_Delay_InitialCondition_e;
31000
31001 /* InitializeConditions for UnitDelay: '<S364>/Unit_Delay' */
31002 L4_MABX_DW.Unit_Delay_DSTATE_ko = L4_MABX_P.Unit_Delay_InitialCondition_ml;
31003
31004 /* InitializeConditions for UnitDelay: '<S373>/FixPt Unit Delay2' */
31005 L4_MABX_DW.FixPtUnitDelay2_DSTATE_f =
31006 L4_MABX_P.FixPtUnitDelay2_InitialCondit_i;
31007
31008 /* InitializeConditions for UnitDelay: '<S373>/FixPt Unit Delay1' */
31009 L4_MABX_DW.FixPtUnitDelay1_DSTATE_l =
31010 L4_MABX_P.FixPtUnitDelay1_InitialCondit_h;
31011
31012 /* InitializeConditions for UnitDelay: '<S371>/Unit_Delay' */
31013 L4_MABX_DW.Unit_Delay_DSTATE_p = L4_MABX_P.Unit_Delay_InitialCondition_j;
31014
31015 /* InitializeConditions for UnitDelay: '<S344>/Delay Input1' */
31016 L4_MABX_DW.DelayInput1_DSTATE[0] = L4_MABX_P.DetectChange1_vinit;
31017
31018 /* InitializeConditions for UnitDelay: '<S351>/Delay Input1' */
31019 L4_MABX_DW.DelayInput1_DSTATE_f[0] = L4_MABX_P.DetectChange1_vinit_n;
31020
31021 /* InitializeConditions for UnitDelay: '<S344>/Delay Input1' */
31022 L4_MABX_DW.DelayInput1_DSTATE[1] = L4_MABX_P.DetectChange1_vinit;
31023
31024 /* InitializeConditions for UnitDelay: '<S351>/Delay Input1' */
31025 L4_MABX_DW.DelayInput1_DSTATE_f[1] = L4_MABX_P.DetectChange1_vinit_n;
31026
31027 /* InitializeConditions for UnitDelay: '<S353>/Unit_Delay' */
31028 L4_MABX_DW.Unit_Delay_DSTATE_l = L4_MABX_P.Unit_Delay_InitialCondition_ag;
31029
31030 /* InitializeConditions for UnitDelay: '<S357>/FixPt Unit Delay2' */
31031 L4_MABX_DW.FixPtUnitDelay2_DSTATE_cn =
31032 L4_MABX_P.FixPtUnitDelay2_InitialCondi_ck;
31033
31034 /* InitializeConditions for UnitDelay: '<S357>/FixPt Unit Delay1' */
31035 L4_MABX_DW.FixPtUnitDelay1_DSTATE_e =
31036 L4_MABX_P.FixPtUnitDelay1_InitialCondit_m;
31037
31038 /* InitializeConditions for UnitDelay: '<S352>/Unit_Delay' */
31039 L4_MABX_DW.Unit_Delay_1_DSTATE_j = L4_MABX_P.Unit_Delay_1_InitialCondition;
31040 L4_MABX_DW.Unit_Delay_2_DSTATE_e = L4_MABX_P.Unit_Delay_2_InitialCondition;
31041 L4_MABX_DW.Unit_Delay_3_DSTATE_j = L4_MABX_P.Unit_Delay_3_InitialCondition;
31042
31043 /* InitializeConditions for UnitDelay: '<S350>/Unit_Delay' */
31044 L4_MABX_DW.Unit_Delay_DSTATE_f = L4_MABX_P.Unit_Delay_InitialCondition_e2;
31045
31046 /* InitializeConditions for UnitDelay: '<S109>/Unit_Delay' */
31047 L4_MABX_DW.Unit_Delay_DSTATE_eu4 = L4_MABX_P.Unit_Delay_InitialCondition_ip;
31048
31049 /* InitializeConditions for UnitDelay: '<S205>/Unit_Delay1' */
31050 L4_MABX_DW.Unit_Delay1_DSTATE_di = L4_MABX_P.Unit_Delay1_InitialCondition_f;
31051
31052 /* InitializeConditions for UnitDelay: '<S205>/Unit_Delay2' */
31053 L4_MABX_DW.Unit_Delay2_DSTATE_e = L4_MABX_P.Unit_Delay2_InitialCondition_a;
31054
31055 /* InitializeConditions for UnitDelay: '<S204>/UD' */
31056 L4_MABX_DW.UD_DSTATE = L4_MABX_P.DiscreteDerivative1_ICPrevScale;
31057
31058 /* InitializeConditions for UnitDelay: '<S329>/Unit_Delay1' */
31059 L4_MABX_DW.Unit_Delay1_DSTATE_db = L4_MABX_P.Unit_Delay1_InitialCondition_m;
31060
31061 /* InitializeConditions for UnitDelay: '<S329>/Unit_Delay2' */
31062 L4_MABX_DW.Unit_Delay2_DSTATE_d = L4_MABX_P.Unit_Delay2_InitialCondition_g;
31063
31064 /* InitializeConditions for UnitDelay: '<S328>/Delay Input1' */
31065 L4_MABX_DW.DelayInput1_DSTATE_f0 = L4_MABX_P.DetectChange_vinit;
31066
31067 /* InitializeConditions for UnitDelay: '<S330>/Unit_Delay1' */
31068 L4_MABX_DW.Unit_Delay1_DSTATE_as = L4_MABX_P.Unit_Delay1_InitialCondition_ps;
31069
31070 /* InitializeConditions for UnitDelay: '<S330>/Unit_Delay2' */
31071 L4_MABX_DW.Unit_Delay2_DSTATE_i = L4_MABX_P.Unit_Delay2_InitialCondition_ji;
31072
31073 /* InitializeConditions for UnitDelay: '<S331>/Unit_Delay1' */
31074 L4_MABX_DW.Unit_Delay1_DSTATE_p = L4_MABX_P.Unit_Delay1_InitialCondition_j;
31075
31076 /* InitializeConditions for UnitDelay: '<S331>/Unit_Delay2' */
31077 L4_MABX_DW.Unit_Delay2_DSTATE_p = L4_MABX_P.Unit_Delay2_InitialCondition_ap;
31078
31079 /* InitializeConditions for UnitDelay: '<S287>/Unit Delay' */
31080 L4_MABX_DW.UnitDelay_DSTATE_d = L4_MABX_P.UnitDelay_InitialCondition_c;
31081
31082 /* InitializeConditions for UnitDelay: '<S297>/Unit Delay' */
31083 L4_MABX_DW.UnitDelay_DSTATE_m = L4_MABX_P.UnitDelay_InitialCondition;
31084
31085 /* InitializeConditions for UnitDelay: '<S298>/Unit Delay' */
31086 L4_MABX_DW.UnitDelay_DSTATE_m0 = L4_MABX_P.UnitDelay_InitialCondition_g;
31087
31088 /* InitializeConditions for UnitDelay: '<S298>/Unit Delay1' */
31089 L4_MABX_DW.UnitDelay1_DSTATE_k = L4_MABX_P.UnitDelay1_InitialCondition_j;
31090
31091 /* InitializeConditions for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
31092 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0 =
31093 L4_MABX_P.TmpRTBAtrad2deg1Inport1_Initial;
31094
31095 /* InitializeConditions for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
31096 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_ =
31097 L4_MABX_P.TmpRTBAtsignCurveOffsetInport1_;
31098
31099 /* InitializeConditions for UnitDelay: '<S292>/Unit Delay' */
31100 L4_MABX_DW.UnitDelay_DSTATE_m1 = L4_MABX_P.UnitDelay_InitialCondition_e;
31101
31102 /* InitializeConditions for RateTransition: '<S286>/TmpRTBAtAdd2Inport2' */
31103 L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0 =
31104 L4_MABX_P.TmpRTBAtAdd2Inport2_InitialCond;
31105
31106 /* InitializeConditions for UnitDelay: '<S310>/Delay Input2' */
31107 L4_MABX_DW.DelayInput2_DSTATE = L4_MABX_P.DelayInput2_InitialCondition;
31108
31109 /* InitializeConditions for DiscreteIntegrator: '<S309>/Integrator' */
31110 L4_MABX_DW.Integrator_DSTATE = L4_MABX_P.Integrator_IC;
31111 L4_MABX_DW.Integrator_PrevResetState = 2;
31112
31113 /* InitializeConditions for DiscreteIntegrator: '<S309>/Filter' */
31114 L4_MABX_DW.Filter_DSTATE = L4_MABX_P.Filter_IC;
31115 L4_MABX_DW.Filter_PrevResetState = 2;
31116
31117 /* InitializeConditions for UnitDelay: '<S313>/Delay Input' */
31118 L4_MABX_DW.DelayInput_DSTATE = L4_MABX_P.TransferFcnLeadorLag_ICPrevInpu;
31119
31120 /* InitializeConditions for UnitDelay: '<S313>/Delay Output' */
31121 L4_MABX_DW.DelayOutput_DSTATE = L4_MABX_P.TransferFcnLeadorLag_ICPrevOutp;
31122
31123 /* InitializeConditions for UnitDelay: '<S311>/Delay Input2' */
31124 L4_MABX_DW.DelayInput2_DSTATE_a = L4_MABX_P.DelayInput2_InitialCondition_m;
31125
31126 /* InitializeConditions for DiscreteIntegrator: '<S303>/Discrete-Time Integrator' */
31127 L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI = 1U;
31128 L4_MABX_DW.DiscreteTimeIntegrator_PrevRese = 2;
31129
31130 /* InitializeConditions for UnitDelay: '<S323>/Delay Input2' */
31131 L4_MABX_DW.DelayInput2_DSTATE_l = L4_MABX_P.DelayInput2_InitialCondition_g;
31132
31133 /* InitializeConditions for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
31134 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
31135 L4_MABX_P.DiscreteTimeIntegrator_IC;
31136 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 0;
31137
31138 /* InitializeConditions for RateLimiter: '<S312>/Limit Rate Limiter' */
31139 L4_MABX_DW.PrevY = L4_MABX_P.LimitRateLimiter_IC;
31140
31141 /* InitializeConditions for UnitDelay: '<S80>/Unit Delay' */
31142 L4_MABX_DW.UnitDelay_DSTATE_e3 = L4_MABX_P.UnitDelay_InitialCondition_g1;
31143
31144 /* InitializeConditions for UnitDelay: '<S375>/FixPt Unit Delay2' */
31145 L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw =
31146 L4_MABX_P.FixPtUnitDelay2_InitialCondit_g;
31147
31148 /* InitializeConditions for UnitDelay: '<S375>/FixPt Unit Delay1' */
31149 L4_MABX_DW.FixPtUnitDelay1_DSTATE_pe =
31150 L4_MABX_P.FixPtUnitDelay1_InitialCondi_dl;
31151
31152 /* InitializeConditions for UnitDelay: '<S376>/FixPt Unit Delay2' */
31153 L4_MABX_DW.FixPtUnitDelay2_DSTATE_g =
31154 L4_MABX_P.FixPtUnitDelay2_InitialCondi_pz;
31155
31156 /* InitializeConditions for UnitDelay: '<S376>/FixPt Unit Delay1' */
31157 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g =
31158 L4_MABX_P.FixPtUnitDelay1_InitialCondi_ol;
31159
31160 /* InitializeConditions for UnitDelay: '<S370>/Unit_Delay' */
31161 L4_MABX_DW.Unit_Delay_DSTATE_j = L4_MABX_P.Unit_Delay_InitialCondition_b;
31162
31163 /* SystemInitialize for Enabled SubSystem: '<S79>/Throttle_controller_gov' */
31164 /* InitializeConditions for UnitDelay: '<S222>/Unit_Delay1' */
31165 L4_MABX_DW.Unit_Delay1_DSTATE_p1 = L4_MABX_P.Unit_Delay1_InitialCondition_o;
31166
31167 /* InitializeConditions for UnitDelay: '<S222>/Unit_Delay' */
31168 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_P.Unit_Delay_InitialCondition_b2;
31169
31170 /* InitializeConditions for UnitDelay: '<S249>/Unit_Delay' */
31171 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Unit_Delay_InitialCondition_lj;
31172
31173 /* InitializeConditions for UnitDelay: '<S269>/Unit_Delay1' */
31174 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Unit_Delay1_InitialCondition_a;
31175
31176 /* InitializeConditions for UnitDelay: '<S270>/Unit_Delay' */
31177 L4_MABX_DW.Unit_Delay_DSTATE_fic = L4_MABX_P.Unit_Delay_InitialCondition_bm;
31178
31179 /* InitializeConditions for UnitDelay: '<S274>/FixPt Unit Delay2' */
31180 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq =
31181 L4_MABX_P.FixPtUnitDelay2_InitialCondit_a;
31182
31183 /* InitializeConditions for UnitDelay: '<S274>/FixPt Unit Delay1' */
31184 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a =
31185 L4_MABX_P.FixPtUnitDelay1_InitialCondit_o;
31186
31187 /* InitializeConditions for UnitDelay: '<S269>/Unit_Delay2' */
31188 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_P.Unit_Delay2_InitialCondition_j;
31189
31190 /* InitializeConditions for UnitDelay: '<S224>/Unit_Delay' */
31191 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_P.Unit_Delay_InitialCondition_kg;
31192
31193 /* SystemInitialize for Enabled SubSystem: '<S246>/Calculate_D_term' */
31194 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term_h,
31195 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
31196
31197 /* End of SystemInitialize for SubSystem: '<S246>/Calculate_D_term' */
31198
31199 /* SystemInitialize for Enabled SubSystem: '<S246>/Calculate_I_term' */
31200 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term_n,
31201 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
31202
31203 /* End of SystemInitialize for SubSystem: '<S246>/Calculate_I_term' */
31204
31205 /* SystemInitialize for Outport: '<S214>/PID_output' */
31206 L4_MABX_B.If_Then_Else_pi.Switch = L4_MABX_P.PID_output_Y0_c;
31207
31208 /* SystemInitialize for Outport: '<S214>/PID_output_unlim' */
31209 L4_MABX_B.Add_ds = L4_MABX_P.PID_output_unlim_Y0;
31210
31211 /* SystemInitialize for Outport: '<S214>/PID_control_error' */
31212 L4_MABX_B.If_Then_Else_k.Switch = L4_MABX_P.PID_control_error_Y0;
31213
31214 /* SystemInitialize for Outport: '<S214>/PID_p_term' */
31215 L4_MABX_B.Product_i = L4_MABX_P.PID_p_term_Y0;
31216
31217 /* SystemInitialize for Outport: '<S214>/PID_i_term' */
31218 L4_MABX_B.PID_i_term_c = L4_MABX_P.PID_i_term_Y0;
31219
31220 /* SystemInitialize for Outport: '<S214>/PID_d_term' */
31221 L4_MABX_B.PID_d_term_c = L4_MABX_P.PID_d_term_Y0;
31222
31223 /* SystemInitialize for Outport: '<S214>/PID_hold_i_term_f' */
31224 L4_MABX_B.PID_hold_i_term_f_b = L4_MABX_P.PID_hold_i_term_f_Y0;
31225
31226 /* End of SystemInitialize for SubSystem: '<S79>/Throttle_controller_gov' */
31227
31228 /* SystemInitialize for Enabled SubSystem: '<S107>/Determine_shift_interlock_brake_pressure_target' */
31229 /* InitializeConditions for UnitDelay: '<S186>/Unit_Delay' */
31230 L4_MABX_DW.Unit_Delay_DSTATE_ob = L4_MABX_P.Unit_Delay_InitialCondition_l;
31231
31232 /* InitializeConditions for UnitDelay: '<S196>/Unit_Delay' */
31233 L4_MABX_DW.Unit_Delay_DSTATE_a = L4_MABX_P.Unit_Delay_InitialCondition_cl;
31234
31235 /* InitializeConditions for UnitDelay: '<S200>/FixPt Unit Delay2' */
31236 L4_MABX_DW.FixPtUnitDelay2_DSTATE_l =
31237 L4_MABX_P.FixPtUnitDelay2_InitialCondit_f;
31238
31239 /* InitializeConditions for UnitDelay: '<S200>/FixPt Unit Delay1' */
31240 L4_MABX_DW.FixPtUnitDelay1_DSTATE_d =
31241 L4_MABX_P.FixPtUnitDelay1_InitialCondit_j;
31242
31243 /* InitializeConditions for UnitDelay: '<S197>/Unit_Delay' */
31244 L4_MABX_DW.Unit_Delay_DSTATE_om = L4_MABX_P.Unit_Delay_InitialCondition_ha;
31245
31246 /* SystemInitialize for Outport: '<S186>/Shift_interlock_brake_press_target_kpa' */
31247 L4_MABX_B.If_Then_Else_il.Switch = L4_MABX_P.Shift_interlock_brake_press_tar;
31248
31249 /* SystemInitialize for Outport: '<S186>/F_Shift_interlock_conditions_met' */
31250 L4_MABX_B.F_Shift_interlock_conditions_me =
31251 L4_MABX_P.F_Shift_interlock_conditions_me;
31252
31253 /* End of SystemInitialize for SubSystem: '<S107>/Determine_shift_interlock_brake_pressure_target' */
31254
31255 /* SystemInitialize for Enabled SubSystem: '<S107>/Determine_brake_hold_pressure_target' */
31256 /* InitializeConditions for UnitDelay: '<S185>/Unit_Delay' */
31257 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_P.Unit_Delay_InitialCondition_d;
31258
31259 /* InitializeConditions for UnitDelay: '<S189>/Unit_Delay' */
31260 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Unit_Delay_InitialCondition_fy;
31261
31262 /* InitializeConditions for UnitDelay: '<S193>/FixPt Unit Delay2' */
31263 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je =
31264 L4_MABX_P.FixPtUnitDelay2_InitialCondit_e;
31265
31266 /* InitializeConditions for UnitDelay: '<S193>/FixPt Unit Delay1' */
31267 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b =
31268 L4_MABX_P.FixPtUnitDelay1_InitialCondit_p;
31269
31270 /* InitializeConditions for UnitDelay: '<S190>/Unit_Delay' */
31271 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_P.Unit_Delay_InitialCondition_k;
31272
31273 /* SystemInitialize for Outport: '<S185>/Brake_hold_brake_press_target_kpa' */
31274 L4_MABX_B.If_Then_Else_gj.Switch = L4_MABX_P.Brake_hold_brake_press_target_k;
31275
31276 /* SystemInitialize for Outport: '<S185>/F_Brake_hold_conditions_met' */
31277 L4_MABX_B.F_Brake_hold_conditions_met =
31278 L4_MABX_P.F_Brake_hold_conditions_met_Y0;
31279
31280 /* End of SystemInitialize for SubSystem: '<S107>/Determine_brake_hold_pressure_target' */
31281
31282 /* SystemInitialize for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
31283 /* InitializeConditions for UnitDelay: '<S113>/Unit_Delay' */
31284 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_P.Unit_Delay_InitialCondition;
31285
31286 /* InitializeConditions for UnitDelay: '<S117>/Unit_Delay' */
31287 L4_MABX_DW.Unit_Delay_DSTATE_omj = L4_MABX_P.Unit_Delay_InitialCondition_lt;
31288
31289 /* InitializeConditions for UnitDelay: '<S137>/Unit_Delay1' */
31290 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Unit_Delay1_InitialCondition;
31291
31292 /* InitializeConditions for UnitDelay: '<S138>/Unit_Delay' */
31293 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Unit_Delay_InitialCondition_og;
31294
31295 /* InitializeConditions for UnitDelay: '<S142>/FixPt Unit Delay2' */
31296 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm =
31297 L4_MABX_P.FixPtUnitDelay2_InitialConditio;
31298
31299 /* InitializeConditions for UnitDelay: '<S142>/FixPt Unit Delay1' */
31300 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 =
31301 L4_MABX_P.FixPtUnitDelay1_InitialConditio;
31302
31303 /* InitializeConditions for UnitDelay: '<S137>/Unit_Delay2' */
31304 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_P.Unit_Delay2_InitialCondition;
31305
31306 /* InitializeConditions for UnitDelay: '<S112>/Unit_Delay' */
31307 L4_MABX_DW.Unit_Delay_DSTATE_i2 = L4_MABX_P.Unit_Delay_InitialCondition_p;
31308
31309 /* SystemInitialize for Enabled SubSystem: '<S114>/Calculate_D_term' */
31310 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term,
31311 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
31312
31313 /* End of SystemInitialize for SubSystem: '<S114>/Calculate_D_term' */
31314
31315 /* SystemInitialize for Enabled SubSystem: '<S114>/Calculate_I_term' */
31316 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term,
31317 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
31318
31319 /* End of SystemInitialize for SubSystem: '<S114>/Calculate_I_term' */
31320
31321 /* SystemInitialize for Outport: '<S104>/PID_output' */
31322 L4_MABX_B.If_Then_Else_nj.Switch = L4_MABX_P.PID_output_Y0;
31323
31324 /* End of SystemInitialize for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
31325
31326 /* SystemInitialize for Chart: '<S346>/VehicleSpeedSetpointDynamicCalculation' */
31327 L4_MABX_B.TimeVectorRaw[0] = 0.0;
31328 L4_MABX_B.TimeVectorRaw[1] = 0.001;
31329 L4_MABX_B.TimeVectorRaw[2] = 0.002;
31330 L4_MABX_B.TimeVectorRaw[3] = 0.003;
31331 L4_MABX_B.TimeVectorRaw[4] = 0.004;
31332 L4_MABX_B.TimeVectorRaw[5] = 0.005;
31333 L4_MABX_B.PositionVectorRaw[0] = 0.0;
31334 L4_MABX_B.PositionVectorRaw[1] = 0.001;
31335 L4_MABX_B.PositionVectorRaw[2] = 0.002;
31336 L4_MABX_B.PositionVectorRaw[3] = 0.003;
31337 L4_MABX_B.PositionVectorRaw[4] = 0.004;
31338 L4_MABX_B.PositionVectorRaw[5] = 0.005;
31339 for (i = 0; i < 6; i++) {
31340 L4_MABX_B.VelocityVectorRaw[i] = 0.0;
31341 L4_MABX_B.AccelerationVectorRaw[i] = 0.0;
31342 L4_MABX_B.JerkVectorRaw[i] = 0.0;
31343 }
31344
31345 /* End of SystemInitialize for Chart: '<S346>/VehicleSpeedSetpointDynamicCalculation' */
31346
31347 /* SystemInitialize for Chart: '<S346>/TwentyPointVectorCalculation' */
31348 L4_MABX_B.TimeVector[0] = 0.0;
31349 L4_MABX_B.TimeVector[1] = 0.001;
31350 L4_MABX_B.TimeVector[2] = 0.002;
31351 L4_MABX_B.TimeVector[3] = 0.003;
31352 L4_MABX_B.TimeVector[4] = 0.004;
31353 L4_MABX_B.TimeVector[5] = 0.005;
31354 L4_MABX_B.TimeVector[6] = 0.006;
31355 L4_MABX_B.TimeVector[7] = 0.007;
31356 L4_MABX_B.TimeVector[8] = 0.008;
31357 L4_MABX_B.TimeVector[9] = 0.0090000000000000011;
31358 L4_MABX_B.TimeVector[10] = 0.01;
31359 L4_MABX_B.TimeVector[11] = 0.011;
31360 L4_MABX_B.TimeVector[12] = 0.012;
31361 L4_MABX_B.TimeVector[13] = 0.013000000000000001;
31362 L4_MABX_B.TimeVector[14] = 0.014;
31363 L4_MABX_B.TimeVector[15] = 0.015;
31364 L4_MABX_B.TimeVector[16] = 0.016;
31365 L4_MABX_B.TimeVector[17] = 0.017;
31366 L4_MABX_B.TimeVector[18] = 0.018000000000000002;
31367 L4_MABX_B.TimeVector[19] = 0.019;
31368 L4_MABX_B.TimeVector[20] = 0.02;
31369 L4_MABX_B.TimeVector[21] = 0.021;
31370 L4_MABX_B.TimeVector[22] = 0.022;
31371 L4_MABX_B.TimeVector[23] = 0.023;
31372 L4_MABX_B.TimeVector[24] = 0.024;
31373 L4_MABX_B.TimeVector[25] = 0.025;
31374 L4_MABX_B.TimeVector[26] = 0.026000000000000002;
31375 L4_MABX_B.TimeVector[27] = 0.027;
31376 L4_MABX_B.TimeVector[28] = 0.028;
31377 L4_MABX_B.TimeVector[29] = 0.029;
31378 L4_MABX_B.TimeVector[30] = 0.03;
31379 L4_MABX_B.TimeVector[31] = 0.031;
31380 L4_MABX_B.TimeVector[32] = 0.032;
31381 L4_MABX_B.PositionVector[0] = 0.0;
31382 L4_MABX_B.PositionVector[1] = 0.001;
31383 L4_MABX_B.PositionVector[2] = 0.002;
31384 L4_MABX_B.PositionVector[3] = 0.003;
31385 L4_MABX_B.PositionVector[4] = 0.004;
31386 L4_MABX_B.PositionVector[5] = 0.005;
31387 L4_MABX_B.PositionVector[6] = 0.006;
31388 L4_MABX_B.PositionVector[7] = 0.007;
31389 L4_MABX_B.PositionVector[8] = 0.008;
31390 L4_MABX_B.PositionVector[9] = 0.0090000000000000011;
31391 L4_MABX_B.PositionVector[10] = 0.01;
31392 L4_MABX_B.PositionVector[11] = 0.011;
31393 L4_MABX_B.PositionVector[12] = 0.012;
31394 L4_MABX_B.PositionVector[13] = 0.013000000000000001;
31395 L4_MABX_B.PositionVector[14] = 0.014;
31396 L4_MABX_B.PositionVector[15] = 0.015;
31397 L4_MABX_B.PositionVector[16] = 0.016;
31398 L4_MABX_B.PositionVector[17] = 0.017;
31399 L4_MABX_B.PositionVector[18] = 0.018000000000000002;
31400 L4_MABX_B.PositionVector[19] = 0.019;
31401 L4_MABX_B.PositionVector[20] = 0.02;
31402 L4_MABX_B.PositionVector[21] = 0.021;
31403 L4_MABX_B.PositionVector[22] = 0.022;
31404 L4_MABX_B.PositionVector[23] = 0.023;
31405 L4_MABX_B.PositionVector[24] = 0.024;
31406 L4_MABX_B.PositionVector[25] = 0.025;
31407 L4_MABX_B.PositionVector[26] = 0.026000000000000002;
31408 L4_MABX_B.PositionVector[27] = 0.027;
31409 L4_MABX_B.PositionVector[28] = 0.028;
31410 L4_MABX_B.PositionVector[29] = 0.029;
31411 L4_MABX_B.PositionVector[30] = 0.03;
31412 L4_MABX_B.PositionVector[31] = 0.031;
31413 L4_MABX_B.PositionVector[32] = 0.032;
31414 memset(&L4_MABX_B.VelocityVector[0], 0, 33U * sizeof(real_T));
31415 memset(&L4_MABX_B.AccelerationVector[0], 0, 33U * sizeof(real_T));
31416 memset(&L4_MABX_B.JerkVector[0], 0, 33U * sizeof(real_T));
31417
31418 /* SystemInitialize for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
31419 /* InitializeConditions for UnitDelay: '<S148>/Unit_Delay' */
31420 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_P.Unit_Delay_InitialCondition_f;
31421
31422 /* InitializeConditions for UnitDelay: '<S155>/Unit_Delay' */
31423 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Unit_Delay_InitialCondition_jb;
31424
31425 /* InitializeConditions for UnitDelay: '<S175>/Unit_Delay1' */
31426 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Unit_Delay1_InitialCondition_p;
31427
31428 /* InitializeConditions for UnitDelay: '<S176>/Unit_Delay' */
31429 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Unit_Delay_InitialCondition_lq;
31430
31431 /* InitializeConditions for UnitDelay: '<S180>/FixPt Unit Delay2' */
31432 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o4 =
31433 L4_MABX_P.FixPtUnitDelay2_InitialCondit_p;
31434
31435 /* InitializeConditions for UnitDelay: '<S180>/FixPt Unit Delay1' */
31436 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 =
31437 L4_MABX_P.FixPtUnitDelay1_InitialCondit_b;
31438
31439 /* InitializeConditions for UnitDelay: '<S175>/Unit_Delay2' */
31440 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_P.Unit_Delay2_InitialCondition_b;
31441
31442 /* InitializeConditions for UnitDelay: '<S147>/Unit_Delay' */
31443 L4_MABX_DW.Unit_Delay_DSTATE_hs = L4_MABX_P.Unit_Delay_InitialCondition_h;
31444
31445 /* SystemInitialize for Enabled SubSystem: '<S152>/Calculate_D_term' */
31446 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term_p,
31447 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
31448
31449 /* End of SystemInitialize for SubSystem: '<S152>/Calculate_D_term' */
31450
31451 /* SystemInitialize for Enabled SubSystem: '<S152>/Calculate_I_term' */
31452 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term_e,
31453 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
31454
31455 /* End of SystemInitialize for SubSystem: '<S152>/Calculate_I_term' */
31456
31457 /* SystemInitialize for Outport: '<S105>/PID_output' */
31458 L4_MABX_B.If_Then_Else_fo.Switch = L4_MABX_P.PID_output_Y0_p;
31459
31460 /* End of SystemInitialize for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
31461
31462 /* SystemInitialize for Chart: '<S79>/Chart' */
31463 L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ = 0U;
31464 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_NO_ACTIVE_CHILD;
31465 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_NOT_AVAILABLE;
31466 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_NOT_AVAILABLE;
31467
31468 /* SystemInitialize for Enabled SubSystem: '<S79>/Engine_speed_target' */
31469 /* SystemInitialize for Outport: '<S212>/Out1' */
31470 L4_MABX_B.MinMax1_nv = L4_MABX_P.Out1_Y0;
31471
31472 /* End of SystemInitialize for SubSystem: '<S79>/Engine_speed_target' */
31473
31474 /* SystemInitialize for Chart: '<S213>/Relay_control_state_machine' */
31475 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
31476 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
31477 L4_MABX_DW.temporalCounter_i1 = 0U;
31478 L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S = 0U;
31479 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_NO_ACTIVE_CHILD;
31480
31481 /* SystemInitialize for Chart: '<S285>/Chart' */
31482 L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ = 0U;
31483 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_NO_ACTIVE_CHILD;
31484
31485 /* SystemInitialize for Enabled SubSystem: '<S285>/Slew_at_event' */
31486 /* InitializeConditions for UnitDelay: '<S338>/Unit_Delay' */
31487 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_P.Unit_Delay_InitialCondition_ls;
31488
31489 /* InitializeConditions for UnitDelay: '<S339>/Unit_Delay' */
31490 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Unit_Delay_InitialCondition_i0;
31491
31492 /* InitializeConditions for UnitDelay: '<S342>/FixPt Unit Delay2' */
31493 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j =
31494 L4_MABX_P.FixPtUnitDelay2_InitialCondit_c;
31495
31496 /* InitializeConditions for UnitDelay: '<S342>/FixPt Unit Delay1' */
31497 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o =
31498 L4_MABX_P.FixPtUnitDelay1_InitialCondit_f;
31499
31500 /* InitializeConditions for UnitDelay: '<S337>/Unit_Delay' */
31501 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_P.Unit_Delay_InitialCondition_ld;
31502
31503 /* SystemInitialize for Outport: '<S336>/F_Out_slewing' */
31504 L4_MABX_B.LogicalOperator_dm = L4_MABX_P.F_Out_slewing_Y0;
31505
31506 /* SystemInitialize for Outport: '<S336>/Out' */
31507 L4_MABX_B.If_Then_Else_n3.Switch = L4_MABX_P.Out_Y0;
31508
31509 /* End of SystemInitialize for SubSystem: '<S285>/Slew_at_event' */
31510 /* End of SystemInitialize for SubSystem: '<S65>/Task_10ms' */
31511
31512 /* SystemInitialize for Enabled SubSystem: '<S627>/PosRapidUpdate_011' */
31513 /* SystemInitialize for Outport: '<S628>/Latitude_' */
31514 L4_MABX_B.SFunction1_o1_c1 = L4_MABX_P.Latitude_Y0;
31515
31516 /* SystemInitialize for Outport: '<S628>/Longitude_' */
31517 L4_MABX_B.SFunction1_o2_fm = L4_MABX_P.Longitude_Y0;
31518
31519 /* SystemInitialize for Outport: '<S628>/RX status' */
31520 L4_MABX_B.SFunction1_o3_cb = L4_MABX_P.RXstatus_Y0_gp;
31521
31522 /* SystemInitialize for Outport: '<S628>/RX time' */
31523 L4_MABX_B.SFunction1_o4_b5 = L4_MABX_P.RXtime_Y0_mt;
31524
31525 /* SystemInitialize for Outport: '<S628>/RX delta time' */
31526 L4_MABX_B.SFunction1_o5_e = L4_MABX_P.RXdeltatime_Y0_lo;
31527
31528 /* End of SystemInitialize for SubSystem: '<S627>/PosRapidUpdate_011' */
31529
31530 /* SystemInitialize for Enabled SubSystem: '<S627>/PosRapidUpdate_1' */
31531 /* SystemInitialize for Outport: '<S629>/Latitude_' */
31532 L4_MABX_B.SFunction1_o1_a5 = L4_MABX_P.Latitude_Y0_l;
31533
31534 /* SystemInitialize for Outport: '<S629>/Longitude_' */
31535 L4_MABX_B.SFunction1_o2_kr = L4_MABX_P.Longitude_Y0_j;
31536
31537 /* SystemInitialize for Outport: '<S629>/RX status' */
31538 L4_MABX_B.SFunction1_o3_og = L4_MABX_P.RXstatus_Y0_df;
31539
31540 /* SystemInitialize for Outport: '<S629>/RX time' */
31541 L4_MABX_B.SFunction1_o4_p0 = L4_MABX_P.RXtime_Y0_n;
31542
31543 /* SystemInitialize for Outport: '<S629>/RX delta time' */
31544 L4_MABX_B.SFunction1_o5_p = L4_MABX_P.RXdeltatime_Y0_dx;
31545
31546 /* End of SystemInitialize for SubSystem: '<S627>/PosRapidUpdate_1' */
31547
31548 /* SystemInitialize for Enabled SubSystem: '<S507>/CCVS1_00' */
31549 /* SystemInitialize for Outport: '<S508>/TwoSpeedAxleSwitch' */
31550 L4_MABX_B.SFunction1_o1_ap = L4_MABX_P.TwoSpeedAxleSwitch_Y0;
31551
31552 /* SystemInitialize for Outport: '<S508>/ParkingBrakeSwitch' */
31553 L4_MABX_B.SFunction1_o2_ge = L4_MABX_P.ParkingBrakeSwitch_Y0;
31554
31555 /* SystemInitialize for Outport: '<S508>/CruiseCtrlPauseSwitch' */
31556 L4_MABX_B.SFunction1_o3_kf = L4_MABX_P.CruiseCtrlPauseSwitch_Y0;
31557
31558 /* SystemInitialize for Outport: '<S508>/ParkBrakeReleaseInhibitRq' */
31559 L4_MABX_B.SFunction1_o4_ay = L4_MABX_P.ParkBrakeReleaseInhibitRq_Y0;
31560
31561 /* SystemInitialize for Outport: '<S508>/WheelBasedVehicleSpeed' */
31562 WheelBasedVehicleSpeed = L4_MABX_P.WheelBasedVehicleSpeed_Y0;
31563
31564 /* SystemInitialize for Outport: '<S508>/CruiseCtrlActive' */
31565 L4_MABX_B.SFunction1_o6_i = L4_MABX_P.CruiseCtrlActive_Y0;
31566
31567 /* SystemInitialize for Outport: '<S508>/CruiseCtrlEnableSwitch' */
31568 L4_MABX_B.SFunction1_o7_bt = L4_MABX_P.CruiseCtrlEnableSwitch_Y0;
31569
31570 /* SystemInitialize for Outport: '<S508>/BrakeSwitch' */
31571 BrakeSwitch = L4_MABX_P.BrakeSwitch_Y0;
31572
31573 /* SystemInitialize for Outport: '<S508>/ClutchSwitch' */
31574 L4_MABX_B.SFunction1_o9_ey = L4_MABX_P.ClutchSwitch_Y0;
31575
31576 /* SystemInitialize for Outport: '<S508>/CruiseCtrlSetSwitch' */
31577 L4_MABX_B.SFunction1_o10_gs = L4_MABX_P.CruiseCtrlSetSwitch_Y0;
31578
31579 /* SystemInitialize for Outport: '<S508>/CruiseCtrlCoastSwitch' */
31580 L4_MABX_B.SFunction1_o11_hb = L4_MABX_P.CruiseCtrlCoastSwitch_Y0;
31581
31582 /* SystemInitialize for Outport: '<S508>/CruiseCtrlResumeSwitch' */
31583 L4_MABX_B.SFunction1_o12_j = L4_MABX_P.CruiseCtrlResumeSwitch_Y0;
31584
31585 /* SystemInitialize for Outport: '<S508>/CruiseCtrlAccelerateSwitch' */
31586 L4_MABX_B.SFunction1_o13_m = L4_MABX_P.CruiseCtrlAccelerateSwitch_Y0;
31587
31588 /* SystemInitialize for Outport: '<S508>/CruiseCtrlSetSpeed' */
31589 L4_MABX_B.SFunction1_o14_gr = L4_MABX_P.CruiseCtrlSetSpeed_Y0;
31590
31591 /* SystemInitialize for Outport: '<S508>/PTOGovernorState' */
31592 L4_MABX_B.SFunction1_o15_a = L4_MABX_P.PTOGovernorState_Y0;
31593
31594 /* SystemInitialize for Outport: '<S508>/CruiseCtrlStates' */
31595 L4_MABX_B.SFunction1_o16_o = L4_MABX_P.CruiseCtrlStates_Y0;
31596
31597 /* SystemInitialize for Outport: '<S508>/EngIdleIncrementSwitch' */
31598 L4_MABX_B.SFunction1_o17_c = L4_MABX_P.EngIdleIncrementSwitch_Y0;
31599
31600 /* SystemInitialize for Outport: '<S508>/EngIdleDecrementSwitch' */
31601 L4_MABX_B.SFunction1_o18_e = L4_MABX_P.EngIdleDecrementSwitch_Y0;
31602
31603 /* SystemInitialize for Outport: '<S508>/EngTestModeSwitch' */
31604 L4_MABX_B.SFunction1_o19_g = L4_MABX_P.EngTestModeSwitch_Y0;
31605
31606 /* SystemInitialize for Outport: '<S508>/EngShutdownOverrideSwitch' */
31607 L4_MABX_B.SFunction1_o20_j = L4_MABX_P.EngShutdownOverrideSwitch_Y0;
31608
31609 /* SystemInitialize for Outport: '<S508>/RX status' */
31610 L4_MABX_B.SFunction1_o21_g = L4_MABX_P.RXstatus_Y0_l;
31611
31612 /* SystemInitialize for Outport: '<S508>/RX time' */
31613 L4_MABX_B.SFunction1_o22_b = L4_MABX_P.RXtime_Y0_hk;
31614
31615 /* SystemInitialize for Outport: '<S508>/RX delta time' */
31616 L4_MABX_B.SFunction1_o23_d = L4_MABX_P.RXdeltatime_Y0_dj;
31617
31618 /* End of SystemInitialize for SubSystem: '<S507>/CCVS1_00' */
31619
31620 /* SystemInitialize for Enabled SubSystem: '<S511>/COGSOGRapidUpdate_00' */
31621 /* SystemInitialize for Outport: '<S512>/SID' */
31622 L4_MABX_B.SFunction1_o1_eg = L4_MABX_P.SID_Y0;
31623
31624 /* SystemInitialize for Outport: '<S512>/COGReference' */
31625 L4_MABX_B.SFunction1_o2_by = L4_MABX_P.COGReference_Y0;
31626
31627 /* SystemInitialize for Outport: '<S512>/CourseOverGround' */
31628 L4_MABX_B.SFunction1_o3_iu = L4_MABX_P.CourseOverGround_Y0;
31629
31630 /* SystemInitialize for Outport: '<S512>/SpeedOverGround' */
31631 L4_MABX_B.SFunction1_o4_am = L4_MABX_P.SpeedOverGround_Y0;
31632
31633 /* SystemInitialize for Outport: '<S512>/RX status' */
31634 L4_MABX_B.SFunction1_o5_hr = L4_MABX_P.RXstatus_Y0_f;
31635
31636 /* SystemInitialize for Outport: '<S512>/RX time' */
31637 L4_MABX_B.SFunction1_o6_n = L4_MABX_P.RXtime_Y0_d;
31638
31639 /* SystemInitialize for Outport: '<S512>/RX delta time' */
31640 L4_MABX_B.SFunction1_o7_h = L4_MABX_P.RXdeltatime_Y0_pm;
31641
31642 /* End of SystemInitialize for SubSystem: '<S511>/COGSOGRapidUpdate_00' */
31643
31644 /* SystemInitialize for Enabled SubSystem: '<S511>/COGSOGRapidUpdate_1' */
31645 /* SystemInitialize for Outport: '<S513>/SID' */
31646 L4_MABX_B.SFunction1_o1_h4 = L4_MABX_P.SID_Y0_g;
31647
31648 /* SystemInitialize for Outport: '<S513>/COGReference' */
31649 L4_MABX_B.SFunction1_o2_aq = L4_MABX_P.COGReference_Y0_n;
31650
31651 /* SystemInitialize for Outport: '<S513>/CourseOverGround' */
31652 L4_MABX_B.SFunction1_o3_es = L4_MABX_P.CourseOverGround_Y0_k;
31653
31654 /* SystemInitialize for Outport: '<S513>/SpeedOverGround' */
31655 L4_MABX_B.SFunction1_o4_lx = L4_MABX_P.SpeedOverGround_Y0_o;
31656
31657 /* SystemInitialize for Outport: '<S513>/RX status' */
31658 L4_MABX_B.SFunction1_o5_k0 = L4_MABX_P.RXstatus_Y0_c;
31659
31660 /* SystemInitialize for Outport: '<S513>/RX time' */
31661 L4_MABX_B.SFunction1_o6_lx = L4_MABX_P.RXtime_Y0_k;
31662
31663 /* SystemInitialize for Outport: '<S513>/RX delta time' */
31664 L4_MABX_B.SFunction1_o7_f4 = L4_MABX_P.RXdeltatime_Y0_a;
31665
31666 /* End of SystemInitialize for SubSystem: '<S511>/COGSOGRapidUpdate_1' */
31667
31668 /* SystemInitialize for Atomic SubSystem: '<S851>/CAN_TX_100ms' */
31669 /* SystemInitialize for Enabled SubSystem: '<S888>/Rolling_15_counter' */
31670 /* InitializeConditions for UnitDelay: '<S930>/Unit_Delay' */
31671 L4_MABX_DW.Unit_Delay_DSTATE = L4_MABX_P.Unit_Delay_InitialCondition_fn;
31672
31673 /* SystemInitialize for Outport: '<S930>/Rolling_15_counter' */
31674 L4_MABX_B.Unit_Delay = L4_MABX_P.Rolling_15_counter_Y0;
31675
31676 /* End of SystemInitialize for SubSystem: '<S888>/Rolling_15_counter' */
31677
31678 /* SystemInitialize for Enabled SubSystem: '<S910>/PropB_XPR_FC' */
31679 /* SystemInitialize for Outport: '<S912>/TX status' */
31680 L4_MABX_B.SFunction1_o1_lb = L4_MABX_P.TXstatus_Y0_o;
31681
31682 /* SystemInitialize for Outport: '<S912>/TX time' */
31683 L4_MABX_B.SFunction1_o2_in5 = L4_MABX_P.TXtime_Y0_e;
31684
31685 /* SystemInitialize for Outport: '<S912>/TX delta time' */
31686 L4_MABX_B.SFunction1_o3_kt = L4_MABX_P.TXdeltatime_Y0_b;
31687
31688 /* SystemInitialize for Outport: '<S912>/TX delay time' */
31689 L4_MABX_B.SFunction1_o4_i = L4_MABX_P.TXdelaytime_Y0_kb;
31690
31691 /* End of SystemInitialize for SubSystem: '<S910>/PropB_XPR_FC' */
31692
31693 /* SystemInitialize for Enabled SubSystem: '<S911>/PropB_XPR_FC' */
31694 /* SystemInitialize for Outport: '<S913>/TX status' */
31695 L4_MABX_B.SFunction1_o1_f0 = L4_MABX_P.TXstatus_Y0_a;
31696
31697 /* SystemInitialize for Outport: '<S913>/TX time' */
31698 L4_MABX_B.SFunction1_o2_p = L4_MABX_P.TXtime_Y0_c;
31699
31700 /* SystemInitialize for Outport: '<S913>/TX delta time' */
31701 L4_MABX_B.SFunction1_o3_lg = L4_MABX_P.TXdeltatime_Y0_c;
31702
31703 /* SystemInitialize for Outport: '<S913>/TX delay time' */
31704 L4_MABX_B.SFunction1_o4_ji = L4_MABX_P.TXdelaytime_Y0_oz;
31705
31706 /* End of SystemInitialize for SubSystem: '<S911>/PropB_XPR_FC' */
31707
31708 /* SystemInitialize for Enabled SubSystem: '<S940>/Std_PosRapidUpdate_01' */
31709 /* SystemInitialize for Outport: '<S941>/TX status' */
31710 L4_MABX_B.SFunction1_o1_at = L4_MABX_P.TXstatus_Y0_g;
31711
31712 /* SystemInitialize for Outport: '<S941>/TX time' */
31713 L4_MABX_B.SFunction1_o2_gq = L4_MABX_P.TXtime_Y0_dc;
31714
31715 /* SystemInitialize for Outport: '<S941>/TX delta time' */
31716 L4_MABX_B.SFunction1_o3_c = L4_MABX_P.TXdeltatime_Y0_jz;
31717
31718 /* SystemInitialize for Outport: '<S941>/TX delay time' */
31719 L4_MABX_B.SFunction1_o4_h = L4_MABX_P.TXdelaytime_Y0_j;
31720
31721 /* End of SystemInitialize for SubSystem: '<S940>/Std_PosRapidUpdate_01' */
31722
31723 /* SystemInitialize for Enabled SubSystem: '<S890>/CCVS1_00' */
31724 /* SystemInitialize for Outport: '<S892>/TX status' */
31725 L4_MABX_B.SFunction1_o1_cq = L4_MABX_P.TXstatus_Y0_k;
31726
31727 /* SystemInitialize for Outport: '<S892>/TX time' */
31728 L4_MABX_B.SFunction1_o2_pm = L4_MABX_P.TXtime_Y0_f;
31729
31730 /* SystemInitialize for Outport: '<S892>/TX delta time' */
31731 L4_MABX_B.SFunction1_o3_lf = L4_MABX_P.TXdeltatime_Y0_j;
31732
31733 /* SystemInitialize for Outport: '<S892>/TX delay time' */
31734 L4_MABX_B.SFunction1_o4_gm = L4_MABX_P.TXdelaytime_Y0_b;
31735
31736 /* End of SystemInitialize for SubSystem: '<S890>/CCVS1_00' */
31737
31738 /* SystemInitialize for Enabled SubSystem: '<S891>/CCVS1_00' */
31739 /* SystemInitialize for Outport: '<S893>/TX status' */
31740 L4_MABX_B.SFunction1_o1_pw = L4_MABX_P.TXstatus_Y0_d;
31741
31742 /* SystemInitialize for Outport: '<S893>/TX time' */
31743 L4_MABX_B.SFunction1_o2_i4 = L4_MABX_P.TXtime_Y0_n;
31744
31745 /* SystemInitialize for Outport: '<S893>/TX delta time' */
31746 L4_MABX_B.SFunction1_o3_ge = L4_MABX_P.TXdeltatime_Y0_n;
31747
31748 /* SystemInitialize for Outport: '<S893>/TX delay time' */
31749 L4_MABX_B.SFunction1_o4_j5 = L4_MABX_P.TXdelaytime_Y0_kt;
31750
31751 /* End of SystemInitialize for SubSystem: '<S891>/CCVS1_00' */
31752
31753 /* SystemInitialize for Enabled SubSystem: '<S894>/PropB_REAX_5_E4' */
31754 /* SystemInitialize for Outport: '<S896>/TX status' */
31755 L4_MABX_B.SFunction1_o1_kb = L4_MABX_P.TXstatus_Y0_n;
31756
31757 /* SystemInitialize for Outport: '<S896>/TX time' */
31758 L4_MABX_B.SFunction1_o2_o = L4_MABX_P.TXtime_Y0_fm;
31759
31760 /* SystemInitialize for Outport: '<S896>/TX delta time' */
31761 L4_MABX_B.SFunction1_o3_nh = L4_MABX_P.TXdeltatime_Y0_l;
31762
31763 /* SystemInitialize for Outport: '<S896>/TX delay time' */
31764 L4_MABX_B.SFunction1_o4_n = L4_MABX_P.TXdelaytime_Y0_o;
31765
31766 /* End of SystemInitialize for SubSystem: '<S894>/PropB_REAX_5_E4' */
31767
31768 /* SystemInitialize for Enabled SubSystem: '<S895>/PropB_REAX_5_E4' */
31769 /* SystemInitialize for Outport: '<S897>/TX status' */
31770 L4_MABX_B.SFunction1_o1_m1 = L4_MABX_P.TXstatus_Y0_nd;
31771
31772 /* SystemInitialize for Outport: '<S897>/TX time' */
31773 L4_MABX_B.SFunction1_o2_b1 = L4_MABX_P.TXtime_Y0_m;
31774
31775 /* SystemInitialize for Outport: '<S897>/TX delta time' */
31776 L4_MABX_B.SFunction1_o3_i = L4_MABX_P.TXdeltatime_Y0_m;
31777
31778 /* SystemInitialize for Outport: '<S897>/TX delay time' */
31779 L4_MABX_B.SFunction1_o4_is = L4_MABX_P.TXdelaytime_Y0_kx;
31780
31781 /* End of SystemInitialize for SubSystem: '<S895>/PropB_REAX_5_E4' */
31782
31783 /* SystemInitialize for Enabled SubSystem: '<S914>/Std_COGSOGRapidUpdate_01' */
31784 /* SystemInitialize for Outport: '<S915>/TX status' */
31785 L4_MABX_B.SFunction1_o1_d = L4_MABX_P.TXstatus_Y0_h;
31786
31787 /* SystemInitialize for Outport: '<S915>/TX time' */
31788 L4_MABX_B.SFunction1_o2_la = L4_MABX_P.TXtime_Y0_em;
31789
31790 /* SystemInitialize for Outport: '<S915>/TX delta time' */
31791 L4_MABX_B.SFunction1_o3_d = L4_MABX_P.TXdeltatime_Y0_b2;
31792
31793 /* SystemInitialize for Outport: '<S915>/TX delay time' */
31794 L4_MABX_B.SFunction1_o4_e = L4_MABX_P.TXdelaytime_Y0_o0;
31795
31796 /* End of SystemInitialize for SubSystem: '<S914>/Std_COGSOGRapidUpdate_01' */
31797
31798 /* SystemInitialize for Enabled SubSystem: '<S916>/EBC1_TX' */
31799 /* SystemInitialize for Outport: '<S917>/TX status' */
31800 L4_MABX_B.SFunction1_o1_lh = L4_MABX_P.TXstatus_Y0_ak;
31801
31802 /* SystemInitialize for Outport: '<S917>/TX time' */
31803 L4_MABX_B.SFunction1_o2_gm = L4_MABX_P.TXtime_Y0_fd;
31804
31805 /* SystemInitialize for Outport: '<S917>/TX delta time' */
31806 L4_MABX_B.SFunction1_o3_c0 = L4_MABX_P.TXdeltatime_Y0_bp;
31807
31808 /* SystemInitialize for Outport: '<S917>/TX delay time' */
31809 L4_MABX_B.SFunction1_o4_m = L4_MABX_P.TXdelaytime_Y0_p;
31810
31811 /* End of SystemInitialize for SubSystem: '<S916>/EBC1_TX' */
31812 /* End of SystemInitialize for SubSystem: '<S851>/CAN_TX_100ms' */
31813
31814 /* SystemInitialize for Atomic SubSystem: '<S851>/CAN_TX_10ms' */
31815 /* InitializeConditions for UnitDelay: '<S1008>/Unit_Delay' */
31816 L4_MABX_DW.Unit_Delay_DSTATE_kh = L4_MABX_P.Unit_Delay_InitialCondition_f0;
31817
31818 /* InitializeConditions for UnitDelay: '<S1009>/Unit Delay' */
31819 L4_MABX_DW.UnitDelay_DSTATE_ee = L4_MABX_P.UnitDelay_InitialCondition_fg;
31820
31821 /* SystemInitialize for Enabled SubSystem: '<S953>/ACCS' */
31822 /* SystemInitialize for Outport: '<S954>/TX status' */
31823 L4_MABX_B.SFunction1_o1_hp = L4_MABX_P.TXstatus_Y0_b;
31824
31825 /* SystemInitialize for Outport: '<S954>/TX time' */
31826 L4_MABX_B.SFunction1_o2_d = L4_MABX_P.TXtime_Y0_b;
31827
31828 /* SystemInitialize for Outport: '<S954>/TX delta time' */
31829 L4_MABX_B.SFunction1_o3_a = L4_MABX_P.TXdeltatime_Y0_e;
31830
31831 /* SystemInitialize for Outport: '<S954>/TX delay time' */
31832 L4_MABX_B.SFunction1_o4_fy = L4_MABX_P.TXdelaytime_Y0_m;
31833
31834 /* End of SystemInitialize for SubSystem: '<S953>/ACCS' */
31835
31836 /* SystemInitialize for Enabled SubSystem: '<S961>/EEC1_00' */
31837 /* SystemInitialize for Outport: '<S963>/TX status' */
31838 L4_MABX_B.SFunction1_o1_o = L4_MABX_P.TXstatus_Y0_m;
31839
31840 /* SystemInitialize for Outport: '<S963>/TX time' */
31841 L4_MABX_B.SFunction1_o2_a = L4_MABX_P.TXtime_Y0_j;
31842
31843 /* SystemInitialize for Outport: '<S963>/TX delta time' */
31844 L4_MABX_B.SFunction1_o3_f3 = L4_MABX_P.TXdeltatime_Y0_mi;
31845
31846 /* SystemInitialize for Outport: '<S963>/TX delay time' */
31847 L4_MABX_B.SFunction1_o4_k = L4_MABX_P.TXdelaytime_Y0_i;
31848
31849 /* End of SystemInitialize for SubSystem: '<S961>/EEC1_00' */
31850
31851 /* SystemInitialize for Enabled SubSystem: '<S962>/EEC1_00' */
31852 /* SystemInitialize for Outport: '<S964>/TX status' */
31853 L4_MABX_B.SFunction1_o1_pm = L4_MABX_P.TXstatus_Y0_c;
31854
31855 /* SystemInitialize for Outport: '<S964>/TX time' */
31856 L4_MABX_B.SFunction1_o2_n = L4_MABX_P.TXtime_Y0_cb;
31857
31858 /* SystemInitialize for Outport: '<S964>/TX delta time' */
31859 L4_MABX_B.SFunction1_o3_g = L4_MABX_P.TXdeltatime_Y0_gu;
31860
31861 /* SystemInitialize for Outport: '<S964>/TX delay time' */
31862 L4_MABX_B.SFunction1_o4_lr = L4_MABX_P.TXdelaytime_Y0_g;
31863
31864 /* End of SystemInitialize for SubSystem: '<S962>/EEC1_00' */
31865
31866 /* SystemInitialize for Merge: '<S979>/Merge' */
31867 L4_MABX_B.Merge = L4_MABX_P.Merge_InitialOutput;
31868
31869 /* SystemInitialize for Enabled SubSystem: '<S965>/PropB_REAX_1_E4' */
31870 /* SystemInitialize for Outport: '<S967>/TX status' */
31871 L4_MABX_B.SFunction1_o1_ae = L4_MABX_P.TXstatus_Y0_g4;
31872
31873 /* SystemInitialize for Outport: '<S967>/TX time' */
31874 L4_MABX_B.SFunction1_o2_l = L4_MABX_P.TXtime_Y0_g;
31875
31876 /* SystemInitialize for Outport: '<S967>/TX delta time' */
31877 L4_MABX_B.SFunction1_o3_o = L4_MABX_P.TXdeltatime_Y0_ci;
31878
31879 /* SystemInitialize for Outport: '<S967>/TX delay time' */
31880 L4_MABX_B.SFunction1_o4_f = L4_MABX_P.TXdelaytime_Y0_l;
31881
31882 /* End of SystemInitialize for SubSystem: '<S965>/PropB_REAX_1_E4' */
31883
31884 /* SystemInitialize for Enabled SubSystem: '<S966>/PropB_REAX_1_E4' */
31885 /* SystemInitialize for Outport: '<S968>/TX status' */
31886 L4_MABX_B.SFunction1_o1_fx = L4_MABX_P.TXstatus_Y0_i;
31887
31888 /* SystemInitialize for Outport: '<S968>/TX time' */
31889 L4_MABX_B.SFunction1_o2_g1 = L4_MABX_P.TXtime_Y0_gn;
31890
31891 /* SystemInitialize for Outport: '<S968>/TX delta time' */
31892 L4_MABX_B.SFunction1_o3_fn = L4_MABX_P.TXdeltatime_Y0_d;
31893
31894 /* SystemInitialize for Outport: '<S968>/TX delay time' */
31895 L4_MABX_B.SFunction1_o4_b = L4_MABX_P.TXdelaytime_Y0_d;
31896
31897 /* End of SystemInitialize for SubSystem: '<S966>/PropB_REAX_1_E4' */
31898
31899 /* SystemInitialize for Enabled SubSystem: '<S975>/VDC2_0B' */
31900 /* SystemInitialize for Outport: '<S976>/TX status' */
31901 L4_MABX_B.SFunction1_o1_l = L4_MABX_P.TXstatus_Y0_i5;
31902
31903 /* SystemInitialize for Outport: '<S976>/TX time' */
31904 L4_MABX_B.SFunction1_o2_e1 = L4_MABX_P.TXtime_Y0_k;
31905
31906 /* SystemInitialize for Outport: '<S976>/TX delta time' */
31907 L4_MABX_B.SFunction1_o3_e2 = L4_MABX_P.TXdeltatime_Y0_o;
31908
31909 /* SystemInitialize for Outport: '<S976>/TX delay time' */
31910 L4_MABX_B.SFunction1_o4_ju = L4_MABX_P.TXdelaytime_Y0_i1;
31911
31912 /* End of SystemInitialize for SubSystem: '<S975>/VDC2_0B' */
31913 /* End of SystemInitialize for SubSystem: '<S851>/CAN_TX_10ms' */
31914
31915 /* SystemInitialize for Atomic SubSystem: '<S851>/CAN_TX_20ms' */
31916 /* InitializeConditions for UnitDelay: '<S1013>/Unit_Delay' */
31917 L4_MABX_DW.Unit_Delay_DSTATE_dq = L4_MABX_P.Unit_Delay_InitialCondition_op;
31918
31919 /* InitializeConditions for UnitDelay: '<S1036>/Unit_Delay' */
31920 L4_MABX_DW.Unit_Delay_DSTATE_hh = L4_MABX_P.Unit_Delay_InitialCondition_a4;
31921
31922 /* InitializeConditions for UnitDelay: '<S1037>/Unit Delay' */
31923 L4_MABX_DW.UnitDelay_DSTATE_ir = L4_MABX_P.UnitDelay_InitialCondition_gt;
31924
31925 /* SystemInitialize for Enabled SubSystem: '<S1020>/PropB_XBR_B3' */
31926 /* SystemInitialize for Outport: '<S1021>/TX status' */
31927 L4_MABX_B.SFunction1_o1_a = L4_MABX_P.TXstatus_Y0_j;
31928
31929 /* SystemInitialize for Outport: '<S1021>/TX time' */
31930 L4_MABX_B.SFunction1_o2_gk = L4_MABX_P.TXtime_Y0_ns;
31931
31932 /* SystemInitialize for Outport: '<S1021>/TX delta time' */
31933 L4_MABX_B.SFunction1_o3_f = L4_MABX_P.TXdeltatime_Y0_j5;
31934
31935 /* SystemInitialize for Outport: '<S1021>/TX delay time' */
31936 L4_MABX_B.SFunction1_o4_j = L4_MABX_P.TXdelaytime_Y0_o3;
31937
31938 /* End of SystemInitialize for SubSystem: '<S1020>/PropB_XBR_B3' */
31939
31940 /* SystemInitialize for Enabled SubSystem: '<S1022>/PropB_Bendix_2C2_XPR' */
31941 /* SystemInitialize for Outport: '<S1023>/TX status' */
31942 L4_MABX_B.SFunction1_o1_p = L4_MABX_P.TXstatus_Y0_bk;
31943
31944 /* SystemInitialize for Outport: '<S1023>/TX time' */
31945 L4_MABX_B.SFunction1_o2_in = L4_MABX_P.TXtime_Y0_mg;
31946
31947 /* SystemInitialize for Outport: '<S1023>/TX delta time' */
31948 L4_MABX_B.SFunction1_o3_b = L4_MABX_P.TXdeltatime_Y0_f;
31949
31950 /* SystemInitialize for Outport: '<S1023>/TX delay time' */
31951 L4_MABX_B.SFunction1_o4_g = L4_MABX_P.TXdelaytime_Y0_kc;
31952
31953 /* End of SystemInitialize for SubSystem: '<S1022>/PropB_Bendix_2C2_XPR' */
31954
31955 /* SystemInitialize for Enabled SubSystem: '<S1030>/Std_OdometryData' */
31956 /* SystemInitialize for Outport: '<S1031>/TX status' */
31957 L4_MABX_B.SFunction1_o1_ii = L4_MABX_P.TXstatus_Y0_ip;
31958
31959 /* SystemInitialize for Outport: '<S1031>/TX time' */
31960 L4_MABX_B.SFunction1_o2_b = L4_MABX_P.TXtime_Y0_nm;
31961
31962 /* SystemInitialize for Outport: '<S1031>/TX delta time' */
31963 L4_MABX_B.SFunction1_o3_n = L4_MABX_P.TXdeltatime_Y0_c4;
31964
31965 /* SystemInitialize for Outport: '<S1031>/TX delay time' */
31966 L4_MABX_B.SFunction1_o4_l = L4_MABX_P.TXdelaytime_Y0_jm;
31967
31968 /* End of SystemInitialize for SubSystem: '<S1030>/Std_OdometryData' */
31969 /* End of SystemInitialize for SubSystem: '<S851>/CAN_TX_20ms' */
31970
31971 /* SystemInitialize for Atomic SubSystem: '<S851>/CAN_TX_5000ms' */
31972 /* InitializeConditions for UnitDelay: '<S1051>/Unit_Delay' */
31973 L4_MABX_DW.Unit_Delay_DSTATE_m4 = L4_MABX_P.Unit_Delay_InitialCondition_px;
31974
31975 /* InitializeConditions for UnitDelay: '<S1052>/Unit Delay' */
31976 L4_MABX_DW.UnitDelay_DSTATE_a = L4_MABX_P.UnitDelay_InitialCondition_kr;
31977
31978 /* SystemInitialize for Enabled SubSystem: '<S1045>/RQST_13_E4' */
31979 /* SystemInitialize for Outport: '<S1047>/TX status' */
31980 L4_MABX_B.SFunction1_o1_f = L4_MABX_P.TXstatus_Y0_bn;
31981
31982 /* SystemInitialize for Outport: '<S1047>/TX time' */
31983 L4_MABX_B.SFunction1_o2_g = L4_MABX_P.TXtime_Y0_dk;
31984
31985 /* SystemInitialize for Outport: '<S1047>/TX delta time' */
31986 L4_MABX_B.SFunction1_o3_k = L4_MABX_P.TXdeltatime_Y0_a;
31987
31988 /* SystemInitialize for Outport: '<S1047>/TX delay time' */
31989 L4_MABX_B.SFunction1_o4_pd = L4_MABX_P.TXdelaytime_Y0_kcv;
31990
31991 /* End of SystemInitialize for SubSystem: '<S1045>/RQST_13_E4' */
31992 /* End of SystemInitialize for SubSystem: '<S851>/CAN_TX_5000ms' */
31993
31994 /* SystemInitialize for Enabled SubSystem: '<S642>/TC1_03_05' */
31995 /* SystemInitialize for Outport: '<S643>/SPN681_TransGearShiftInhibitReq' */
31996 L4_MABX_B.SFunction1_o1_cm = L4_MABX_P.SPN681_TransGearShiftInhibitReq;
31997
31998 /* SystemInitialize for Outport: '<S643>/SPN682_TransTrqConvLockupDisReq' */
31999 L4_MABX_B.SFunction1_o2_do = L4_MABX_P.SPN682_TransTrqConvLockupDisReq;
32000
32001 /* SystemInitialize for Outport: '<S643>/SPN683_DisengageDrivelineReq' */
32002 L4_MABX_B.SFunction1_o3_gr = L4_MABX_P.SPN683_DisengageDrivelineReq_Y0;
32003
32004 /* SystemInitialize for Outport: '<S643>/SPN4242_TransRevGearShiftInhibRq' */
32005 L4_MABX_B.SFunction1_o4_ms = L4_MABX_P.SPN4242_TransRevGearShiftInhibR;
32006
32007 /* SystemInitialize for Outport: '<S643>/SPN684_RequestedPercClutchSlip' */
32008 L4_MABX_B.SFunction1_o5_n = L4_MABX_P.SPN684_RequestedPercClutchSlip_;
32009
32010 /* SystemInitialize for Outport: '<S643>/SPN525_TransRequestedGear' */
32011 L4_MABX_B.SFunction1_o6_h = L4_MABX_P.SPN525_TransRequestedGear_Y0;
32012
32013 /* SystemInitialize for Outport: '<S643>/SPN685_DisengageDiffLockRqFrAx1' */
32014 L4_MABX_B.SFunction1_o7_e = L4_MABX_P.SPN685_DisengageDiffLockRqFrAx1;
32015
32016 /* SystemInitialize for Outport: '<S643>/SPN686_DisengageDiffLockRqFrAx2' */
32017 L4_MABX_B.SFunction1_o8_k = L4_MABX_P.SPN686_DisengageDiffLockRqFrAx2;
32018
32019 /* SystemInitialize for Outport: '<S643>/SPN687_DisengageDiffLockRqRrAx1' */
32020 L4_MABX_B.SFunction1_o9_c = L4_MABX_P.SPN687_DisengageDiffLockRqRrAx1;
32021
32022 /* SystemInitialize for Outport: '<S643>/SPN688_DisengageDiffLockRqRrAx2' */
32023 L4_MABX_B.SFunction1_o10_b = L4_MABX_P.SPN688_DisengageDiffLockRqRrAx2;
32024
32025 /* SystemInitialize for Outport: '<S643>/SPN689_DisengageDiffLockRqC' */
32026 L4_MABX_B.SFunction1_o11 = L4_MABX_P.SPN689_DisengageDiffLockRqC_Y0;
32027
32028 /* SystemInitialize for Outport: '<S643>/SPN690_DisengageDiffLockRqCF' */
32029 L4_MABX_B.SFunction1_o12 = L4_MABX_P.SPN690_DisengageDiffLockRqCF_Y0;
32030
32031 /* SystemInitialize for Outport: '<S643>/SPN691_DisengageDiffLockRqCR' */
32032 L4_MABX_B.SFunction1_o13 = L4_MABX_P.SPN691_DisengageDiffLockRqCR_Y0;
32033
32034 /* SystemInitialize for Outport: '<S643>/SPN5762_TransLoadRedInhibitRq' */
32035 L4_MABX_B.SFunction1_o14 = L4_MABX_P.SPN5762_TransLoadRedInhibitRq_Y;
32036
32037 /* SystemInitialize for Outport: '<S643>/SPN1852_TransmissionMode1' */
32038 L4_MABX_B.SFunction1_o15 = L4_MABX_P.SPN1852_TransmissionMode1_Y0;
32039
32040 /* SystemInitialize for Outport: '<S643>/SPN1853_TransmissionMode2' */
32041 L4_MABX_B.SFunction1_o16 = L4_MABX_P.SPN1853_TransmissionMode2_Y0;
32042
32043 /* SystemInitialize for Outport: '<S643>/SPN1854_TransmissionMode3' */
32044 L4_MABX_B.SFunction1_o17 = L4_MABX_P.SPN1854_TransmissionMode3_Y0;
32045
32046 /* SystemInitialize for Outport: '<S643>/SPN1855_TransmissionMode4' */
32047 L4_MABX_B.SFunction1_o18 = L4_MABX_P.SPN1855_TransmissionMode4_Y0;
32048
32049 /* SystemInitialize for Outport: '<S643>/SPN7695_TransAutoNeutralRequest' */
32050 L4_MABX_B.SFunction1_o19 = L4_MABX_P.SPN7695_TransAutoNeutralRequest;
32051
32052 /* SystemInitialize for Outport: '<S643>/SPN4255_TransRequestedLaunchGear' */
32053 L4_MABX_B.SFunction1_o20 = L4_MABX_P.SPN4255_TransRequestedLaunchGea;
32054
32055 /* SystemInitialize for Outport: '<S643>/SPN2985_TransShiftSelDispModeSw' */
32056 L4_MABX_B.SFunction1_o21 = L4_MABX_P.SPN2985_TransShiftSelDispModeSw;
32057
32058 /* SystemInitialize for Outport: '<S643>/SPN4246_TransmissionMode5' */
32059 L4_MABX_B.SFunction1_o22 = L4_MABX_P.SPN4246_TransmissionMode5_Y0;
32060
32061 /* SystemInitialize for Outport: '<S643>/SPN4247_TransmissionMode6' */
32062 L4_MABX_B.SFunction1_o23 = L4_MABX_P.SPN4247_TransmissionMode6_Y0;
32063
32064 /* SystemInitialize for Outport: '<S643>/SPN4248_TransmissionMode7' */
32065 L4_MABX_B.SFunction1_o24 = L4_MABX_P.SPN4248_TransmissionMode7_Y0;
32066
32067 /* SystemInitialize for Outport: '<S643>/SPN4249_TransmissionMode8' */
32068 L4_MABX_B.SFunction1_o25 = L4_MABX_P.SPN4249_TransmissionMode8_Y0;
32069
32070 /* SystemInitialize for Outport: '<S643>/RX status' */
32071 L4_MABX_B.SFunction1_o26 = L4_MABX_P.RXstatus_Y0_er;
32072
32073 /* SystemInitialize for Outport: '<S643>/RX time' */
32074 L4_MABX_B.SFunction1_o27 = L4_MABX_P.RXtime_Y0_nj;
32075
32076 /* SystemInitialize for Outport: '<S643>/RX delta time' */
32077 L4_MABX_B.SFunction1_o28 = L4_MABX_P.RXdeltatime_Y0_ks;
32078
32079 /* End of SystemInitialize for SubSystem: '<S642>/TC1_03_05' */
32080
32081 /* SystemInitialize for Atomic SubSystem: '<S851>/CAN_TX_50ms' */
32082 /* SystemInitialize for Enabled SubSystem: '<S1056>/CCVS1_E3' */
32083 /* SystemInitialize for Outport: '<S1058>/TX status' */
32084 L4_MABX_B.SFunction1_o1_i = L4_MABX_P.TXstatus_Y0_bkk;
32085
32086 /* SystemInitialize for Outport: '<S1058>/TX time' */
32087 L4_MABX_B.SFunction1_o2_iq = L4_MABX_P.TXtime_Y0_mu;
32088
32089 /* SystemInitialize for Outport: '<S1058>/TX delta time' */
32090 L4_MABX_B.SFunction1_o3_h = L4_MABX_P.TXdeltatime_Y0_dp;
32091
32092 /* SystemInitialize for Outport: '<S1058>/TX delay time' */
32093 L4_MABX_B.SFunction1_o4_p = L4_MABX_P.TXdelaytime_Y0_dq;
32094
32095 /* End of SystemInitialize for SubSystem: '<S1056>/CCVS1_E3' */
32096
32097 /* SystemInitialize for Enabled SubSystem: '<S1057>/TC1_03_05' */
32098 /* SystemInitialize for Outport: '<S1059>/TX status' */
32099 L4_MABX_B.SFunction1_o1_k0 = L4_MABX_P.TXstatus_Y0_hd;
32100
32101 /* SystemInitialize for Outport: '<S1059>/TX time' */
32102 L4_MABX_B.SFunction1_o2_hu = L4_MABX_P.TXtime_Y0_bg;
32103
32104 /* SystemInitialize for Outport: '<S1059>/TX delta time' */
32105 L4_MABX_B.SFunction1_o3_l = L4_MABX_P.TXdeltatime_Y0_b0;
32106
32107 /* SystemInitialize for Outport: '<S1059>/TX delay time' */
32108 L4_MABX_B.SFunction1_o4_al = L4_MABX_P.TXdelaytime_Y0_kn;
32109
32110 /* End of SystemInitialize for SubSystem: '<S1057>/TC1_03_05' */
32111 /* End of SystemInitialize for SubSystem: '<S851>/CAN_TX_50ms' */
32112
32113 /* SystemInitialize for Enabled SubSystem: '<S640>/SystemTime_01' */
32114 /* SystemInitialize for Outport: '<S641>/SID' */
32115 L4_MABX_B.SFunction1_o1_jp = L4_MABX_P.SID_Y0_a;
32116
32117 /* SystemInitialize for Outport: '<S641>/Source' */
32118 L4_MABX_B.SFunction1_o2_aj = L4_MABX_P.Source_Y0;
32119
32120 /* SystemInitialize for Outport: '<S641>/Date' */
32121 L4_MABX_B.SFunction1_o3_jn = L4_MABX_P.Date_Y0;
32122
32123 /* SystemInitialize for Outport: '<S641>/Time' */
32124 L4_MABX_B.SFunction1_o4_m0 = L4_MABX_P.Time_Y0;
32125
32126 /* SystemInitialize for Outport: '<S641>/RX status' */
32127 L4_MABX_B.SFunction1_o5_a = L4_MABX_P.RXstatus_Y0_mlx;
32128
32129 /* SystemInitialize for Outport: '<S641>/RX time' */
32130 L4_MABX_B.SFunction1_o6_f = L4_MABX_P.RXtime_Y0_iq;
32131
32132 /* SystemInitialize for Outport: '<S641>/RX delta time' */
32133 L4_MABX_B.SFunction1_o7_k = L4_MABX_P.RXdeltatime_Y0_k;
32134
32135 /* End of SystemInitialize for SubSystem: '<S640>/SystemTime_01' */
32136
32137 /* SystemInitialize for Enabled SubSystem: '<S1069>/Std_SystemTime_01' */
32138 /* SystemInitialize for Outport: '<S1071>/TX status' */
32139 L4_MABX_B.SFunction1_o1_c = L4_MABX_P.TXstatus_Y0_mp;
32140
32141 /* SystemInitialize for Outport: '<S1071>/TX time' */
32142 L4_MABX_B.SFunction1_o2_i = L4_MABX_P.TXtime_Y0_l;
32143
32144 /* SystemInitialize for Outport: '<S1071>/TX delta time' */
32145 L4_MABX_B.SFunction1_o3 = L4_MABX_P.TXdeltatime_Y0_gy;
32146
32147 /* SystemInitialize for Outport: '<S1071>/TX delay time' */
32148 L4_MABX_B.SFunction1_o4 = L4_MABX_P.TXdelaytime_Y0_h;
32149
32150 /* End of SystemInitialize for SubSystem: '<S1069>/Std_SystemTime_01' */
32151
32152 /* SystemInitialize for Triggered SubSystem: '<S1064>/CAN_TYPE1_TX_M1_C1' */
32153 /* SystemInitialize for Outport: '<S1066>/TX status' */
32154 L4_MABX_B.SFunction1_o1_k = L4_MABX_P.TXstatus_Y0_n2;
32155
32156 /* SystemInitialize for Outport: '<S1066>/TX time' */
32157 L4_MABX_B.SFunction1_o2_mn = L4_MABX_P.TXtime_Y0_cz;
32158
32159 /* SystemInitialize for Outport: '<S1066>/TX delta time' */
32160 L4_MABX_B.SFunction1_o3_e = L4_MABX_P.TXdeltatime_Y0_no;
32161
32162 /* SystemInitialize for Outport: '<S1066>/TX delay time' */
32163 L4_MABX_B.SFunction1_o4_a = L4_MABX_P.TXdelaytime_Y0_n;
32164
32165 /* End of SystemInitialize for SubSystem: '<S1064>/CAN_TYPE1_TX_M1_C1' */
32166
32167 /* SystemInitialize for Triggered SubSystem: '<S1065>/CAN_TYPE1_TX_M1_C1' */
32168 /* SystemInitialize for Outport: '<S1067>/TX status' */
32169 L4_MABX_B.SFunction1_o1_n = L4_MABX_P.TXstatus_Y0_ck;
32170
32171 /* SystemInitialize for Outport: '<S1067>/TX time' */
32172 L4_MABX_B.SFunction1_o2_e = L4_MABX_P.TXtime_Y0_nn;
32173
32174 /* SystemInitialize for Outport: '<S1067>/TX delta time' */
32175 L4_MABX_B.SFunction1_o3_j = L4_MABX_P.TXdeltatime_Y0_ok;
32176
32177 /* SystemInitialize for Outport: '<S1067>/TX delay time' */
32178 L4_MABX_B.SFunction1_o4_d = L4_MABX_P.TXdelaytime_Y0_jt;
32179
32180 /* End of SystemInitialize for SubSystem: '<S1065>/CAN_TYPE1_TX_M1_C1' */
32181
32182 /* SystemInitialize for Chart: '<S861>/Chart' */
32183 L4_MABX_DW.temporalCounter_i1_k = 0U;
32184 L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW = 0U;
32185 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
32186
32187 /* SystemInitialize for Enabled SubSystem: '<S575>/GNSSDOPs_011' */
32188 /* SystemInitialize for Outport: '<S576>/SID' */
32189 L4_MABX_B.SFunction1_o1_ny = L4_MABX_P.SID_Y0_c;
32190
32191 /* SystemInitialize for Outport: '<S576>/SetMode' */
32192 L4_MABX_B.SFunction1_o2_oy = L4_MABX_P.SetMode_Y0;
32193
32194 /* SystemInitialize for Outport: '<S576>/OpMode' */
32195 L4_MABX_B.SFunction1_o3_f1 = L4_MABX_P.OpMode_Y0;
32196
32197 /* SystemInitialize for Outport: '<S576>/HDOP_' */
32198 L4_MABX_B.SFunction1_o4_hy = L4_MABX_P.HDOP_Y0;
32199
32200 /* SystemInitialize for Outport: '<S576>/VDOP' */
32201 L4_MABX_B.SFunction1_o5_i1 = L4_MABX_P.VDOP_Y0;
32202
32203 /* SystemInitialize for Outport: '<S576>/TDOP' */
32204 L4_MABX_B.SFunction1_o6_lq = L4_MABX_P.TDOP_Y0;
32205
32206 /* SystemInitialize for Outport: '<S576>/RX status' */
32207 L4_MABX_B.SFunction1_o7_b = L4_MABX_P.RXstatus_Y0_e;
32208
32209 /* SystemInitialize for Outport: '<S576>/RX time' */
32210 L4_MABX_B.SFunction1_o8_p = L4_MABX_P.RXtime_Y0_j1;
32211
32212 /* SystemInitialize for Outport: '<S576>/RX delta time' */
32213 L4_MABX_B.SFunction1_o9_ks = L4_MABX_P.RXdeltatime_Y0_jy;
32214
32215 /* End of SystemInitialize for SubSystem: '<S575>/GNSSDOPs_011' */
32216
32217 /* SystemInitialize for Enabled SubSystem: '<S575>/GNSSDOPs_1' */
32218 /* SystemInitialize for Outport: '<S577>/SID' */
32219 L4_MABX_B.SFunction1_o1_l3y = L4_MABX_P.SID_Y0_e;
32220
32221 /* SystemInitialize for Outport: '<S577>/SetMode' */
32222 L4_MABX_B.SFunction1_o2_c = L4_MABX_P.SetMode_Y0_i;
32223
32224 /* SystemInitialize for Outport: '<S577>/OpMode' */
32225 L4_MABX_B.SFunction1_o3_id = L4_MABX_P.OpMode_Y0_g;
32226
32227 /* SystemInitialize for Outport: '<S577>/HDOP_' */
32228 L4_MABX_B.SFunction1_o4_p4 = L4_MABX_P.HDOP_Y0_j;
32229
32230 /* SystemInitialize for Outport: '<S577>/VDOP' */
32231 L4_MABX_B.SFunction1_o5_hk = L4_MABX_P.VDOP_Y0_l;
32232
32233 /* SystemInitialize for Outport: '<S577>/TDOP' */
32234 L4_MABX_B.SFunction1_o6_af = L4_MABX_P.TDOP_Y0_c;
32235
32236 /* SystemInitialize for Outport: '<S577>/RX status' */
32237 L4_MABX_B.SFunction1_o7_p = L4_MABX_P.RXstatus_Y0_a;
32238
32239 /* SystemInitialize for Outport: '<S577>/RX time' */
32240 L4_MABX_B.SFunction1_o8_g = L4_MABX_P.RXtime_Y0_fy;
32241
32242 /* SystemInitialize for Outport: '<S577>/RX delta time' */
32243 L4_MABX_B.SFunction1_o9_k = L4_MABX_P.RXdeltatime_Y0_cb;
32244
32245 /* End of SystemInitialize for SubSystem: '<S575>/GNSSDOPs_1' */
32246
32247 /* SystemInitialize for Atomic SubSystem: '<S65>/Task_20ms' */
32248 /* InitializeConditions for UnitDelay: '<S397>/Unit Delay1' */
32249 L4_MABX_DW.UnitDelay1_DSTATE = L4_MABX_P.UnitDelay1_InitialCondition_p;
32250
32251 /* InitializeConditions for DiscreteIntegrator: '<S398>/LongitudnalPosition' */
32252 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_B.InitialPosition;
32253 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 2;
32254
32255 /* InitializeConditions for DiscreteIntegrator: '<S398>/VehHeading' */
32256 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_B.InitialHeading;
32257 L4_MABX_DW.VehHeading_PrevResetState = 2;
32258
32259 /* InitializeConditions for DiscreteIntegrator: '<S398>/XPosition' */
32260 L4_MABX_DW.XPosition_DSTATE = L4_MABX_B.InitialXPosition;
32261 L4_MABX_DW.XPosition_PrevResetState = 2;
32262
32263 /* InitializeConditions for DiscreteIntegrator: '<S398>/YPosition' */
32264 L4_MABX_DW.YPosition_DSTATE = L4_MABX_B.InitialYPosition;
32265 L4_MABX_DW.YPosition_PrevResetState = 2;
32266
32267 /* End of SystemInitialize for SubSystem: '<S65>/Task_20ms' */
32268
32269 /* SystemInitialize for S-Function (rti_commonblock): '<S410>/S-Function1' incorporates:
32270 * SubSystem: '<S401>/Background_Task'
32271 */
32272 L4_MAB_Background_Task_Init();
32273
32274 /* End of SystemInitialize for S-Function (rti_commonblock): '<S410>/S-Function1' */
32275
32276 /* SystemInitialize for S-Function (rti_commonblock): '<S416>/S-Function1' incorporates:
32277 * SubSystem: '<S401>/Interrupt_Task'
32278 */
32279 L4_MABX_Interrupt_Task_Init();
32280
32281 /* End of SystemInitialize for S-Function (rti_commonblock): '<S416>/S-Function1' */
32282
32283 /* SystemInitialize for Enabled SubSystem: '<S497>/AEBS1_A0' */
32284 /* SystemInitialize for Outport: '<S498>/AdvEmergencyBrkSysState' */
32285 L4_MABX_B.SFunction1_o1_ks = L4_MABX_P.AdvEmergencyBrkSysState_Y0;
32286
32287 /* SystemInitialize for Outport: '<S498>/CollisionWarningLevel' */
32288 L4_MABX_B.SFunction1_o2_d0 = L4_MABX_P.CollisionWarningLevel_Y0;
32289
32290 /* SystemInitialize for Outport: '<S498>/RelObjctDetForAdvEmergBrakingSys' */
32291 L4_MABX_B.SFunction1_o3_ci = L4_MABX_P.RelObjctDetForAdvEmergBrakingSy;
32292
32293 /* SystemInitialize for Outport: '<S498>/BendOffProbabOfRelevantObject' */
32294 L4_MABX_B.SFunction1_o4_amf = L4_MABX_P.BendOffProbabOfRelevantObject_Y;
32295
32296 /* SystemInitialize for Outport: '<S498>/TimeToCollisionWithRelevantObj' */
32297 L4_MABX_B.SFunction1_o5_js = L4_MABX_P.TimeToCollisionWithRelevantObj_;
32298
32299 /* SystemInitialize for Outport: '<S498>/RX status' */
32300 L4_MABX_B.SFunction1_o6_cy = L4_MABX_P.RXstatus_Y0_h;
32301
32302 /* SystemInitialize for Outport: '<S498>/RX time' */
32303 L4_MABX_B.SFunction1_o7_ba = L4_MABX_P.RXtime_Y0_f;
32304
32305 /* SystemInitialize for Outport: '<S498>/RX delta time' */
32306 L4_MABX_B.SFunction1_o8_a = L4_MABX_P.RXdeltatime_Y0_n;
32307
32308 /* End of SystemInitialize for SubSystem: '<S497>/AEBS1_A0' */
32309
32310 /* SystemInitialize for Enabled SubSystem: '<S503>/B2' */
32311 /* SystemInitialize for Outport: '<S504>/BrakeAppPressDemanded' */
32312 L4_MABX_B.SFunction1_o1_o5 = L4_MABX_P.BrakeAppPressDemanded_Y0;
32313
32314 /* SystemInitialize for Outport: '<S504>/BrakeSwitch2' */
32315 L4_MABX_B.SFunction1_o2_bp = L4_MABX_P.BrakeSwitch2_Y0;
32316
32317 /* SystemInitialize for Outport: '<S504>/RX status' */
32318 L4_MABX_B.SFunction1_o3_l0 = L4_MABX_P.RXstatus_Y0_j;
32319
32320 /* SystemInitialize for Outport: '<S504>/RX time' */
32321 L4_MABX_B.SFunction1_o4_gs = L4_MABX_P.RXtime_Y0_pb;
32322
32323 /* SystemInitialize for Outport: '<S504>/RX delta time' */
32324 L4_MABX_B.SFunction1_o5_om = L4_MABX_P.RXdeltatime_Y0_n0;
32325
32326 /* End of SystemInitialize for SubSystem: '<S503>/B2' */
32327
32328 /* SystemInitialize for Enabled SubSystem: '<S505>/Tracks' */
32329 /* SystemInitialize for Outport: '<S506>/tr0_track_selection_status' */
32330 L4_MABX_B.SFunction1_o1_jr = L4_MABX_P.tr0_track_selection_status_Y0;
32331
32332 /* SystemInitialize for Outport: '<S506>/tr0_corrected_lateral_distance' */
32333 L4_MABX_B.SFunction1_o2_mq = L4_MABX_P.tr0_corrected_lateral_distance_;
32334
32335 /* SystemInitialize for Outport: '<S506>/tr1_track_selection_status' */
32336 L4_MABX_B.SFunction1_o3_a1 = L4_MABX_P.tr1_track_selection_status_Y0;
32337
32338 /* SystemInitialize for Outport: '<S506>/tr1_corrected_lateral_distance' */
32339 L4_MABX_B.SFunction1_o4_nl = L4_MABX_P.tr1_corrected_lateral_distance_;
32340
32341 /* SystemInitialize for Outport: '<S506>/tr2_track_selection_status' */
32342 L4_MABX_B.SFunction1_o5_b3 = L4_MABX_P.tr2_track_selection_status_Y0;
32343
32344 /* SystemInitialize for Outport: '<S506>/tr2_corrected_lateral_distance' */
32345 L4_MABX_B.SFunction1_o6_m = L4_MABX_P.tr2_corrected_lateral_distance_;
32346
32347 /* SystemInitialize for Outport: '<S506>/tr3_track_selection_status' */
32348 L4_MABX_B.SFunction1_o7_iq = L4_MABX_P.tr3_track_selection_status_Y0;
32349
32350 /* SystemInitialize for Outport: '<S506>/tr3_corrected_lateral_distance' */
32351 L4_MABX_B.SFunction1_o8_i = L4_MABX_P.tr3_corrected_lateral_distance_;
32352
32353 /* SystemInitialize for Outport: '<S506>/tr4_track_selection_status' */
32354 L4_MABX_B.SFunction1_o9_p = L4_MABX_P.tr4_track_selection_status_Y0;
32355
32356 /* SystemInitialize for Outport: '<S506>/tr4_corrected_lateral_distance' */
32357 L4_MABX_B.SFunction1_o10_e1 = L4_MABX_P.tr4_corrected_lateral_distance_;
32358
32359 /* SystemInitialize for Outport: '<S506>/tr5_track_selection_status' */
32360 L4_MABX_B.SFunction1_o11_fh = L4_MABX_P.tr5_track_selection_status_Y0;
32361
32362 /* SystemInitialize for Outport: '<S506>/tr5_corrected_lateral_distance' */
32363 L4_MABX_B.SFunction1_o12_e2 = L4_MABX_P.tr5_corrected_lateral_distance_;
32364
32365 /* SystemInitialize for Outport: '<S506>/tr6_track_selection_status' */
32366 L4_MABX_B.SFunction1_o13_g = L4_MABX_P.tr6_track_selection_status_Y0;
32367
32368 /* SystemInitialize for Outport: '<S506>/tr6_corrected_lateral_distance' */
32369 L4_MABX_B.SFunction1_o14_b = L4_MABX_P.tr6_corrected_lateral_distance_;
32370
32371 /* SystemInitialize for Outport: '<S506>/tr7_track_selection_status' */
32372 L4_MABX_B.SFunction1_o15_k = L4_MABX_P.tr7_track_selection_status_Y0;
32373
32374 /* SystemInitialize for Outport: '<S506>/tr7_corrected_lateral_distance' */
32375 L4_MABX_B.SFunction1_o16_f = L4_MABX_P.tr7_corrected_lateral_distance_;
32376
32377 /* SystemInitialize for Outport: '<S506>/tr8_track_selection_status' */
32378 L4_MABX_B.SFunction1_o17_et = L4_MABX_P.tr8_track_selection_status_Y0;
32379
32380 /* SystemInitialize for Outport: '<S506>/tr8_corrected_lateral_distance' */
32381 L4_MABX_B.SFunction1_o18_g = L4_MABX_P.tr8_corrected_lateral_distance_;
32382
32383 /* SystemInitialize for Outport: '<S506>/tr9_track_selection_status' */
32384 L4_MABX_B.SFunction1_o19_k = L4_MABX_P.tr9_track_selection_status_Y0;
32385
32386 /* SystemInitialize for Outport: '<S506>/tr9_corrected_lateral_distance' */
32387 L4_MABX_B.SFunction1_o20_c = L4_MABX_P.tr9_corrected_lateral_distance_;
32388
32389 /* SystemInitialize for Outport: '<S506>/tr0_lateral_position' */
32390 L4_MABX_B.SFunction1_o21_j = L4_MABX_P.tr0_lateral_position_Y0;
32391
32392 /* SystemInitialize for Outport: '<S506>/tr1_lateral_position' */
32393 L4_MABX_B.SFunction1_o22_d = L4_MABX_P.tr1_lateral_position_Y0;
32394
32395 /* SystemInitialize for Outport: '<S506>/tr2_lateral_position' */
32396 L4_MABX_B.SFunction1_o23_m = L4_MABX_P.tr2_lateral_position_Y0;
32397
32398 /* SystemInitialize for Outport: '<S506>/tr3_lateral_position' */
32399 L4_MABX_B.SFunction1_o24_b = L4_MABX_P.tr3_lateral_position_Y0;
32400
32401 /* SystemInitialize for Outport: '<S506>/tr4_lateral_position' */
32402 L4_MABX_B.SFunction1_o25_g = L4_MABX_P.tr4_lateral_position_Y0;
32403
32404 /* SystemInitialize for Outport: '<S506>/tr5_lateral_position' */
32405 L4_MABX_B.SFunction1_o26_n = L4_MABX_P.tr5_lateral_position_Y0;
32406
32407 /* SystemInitialize for Outport: '<S506>/tr6_lateral_position' */
32408 L4_MABX_B.SFunction1_o27_o = L4_MABX_P.tr6_lateral_position_Y0;
32409
32410 /* SystemInitialize for Outport: '<S506>/tr7_lateral_position' */
32411 L4_MABX_B.SFunction1_o28_m = L4_MABX_P.tr7_lateral_position_Y0;
32412
32413 /* SystemInitialize for Outport: '<S506>/tr8_lateral_position' */
32414 L4_MABX_B.SFunction1_o29 = L4_MABX_P.tr8_lateral_position_Y0;
32415
32416 /* SystemInitialize for Outport: '<S506>/tr9_lateral_position' */
32417 L4_MABX_B.SFunction1_o30 = L4_MABX_P.tr9_lateral_position_Y0;
32418
32419 /* SystemInitialize for Outport: '<S506>/tr0_range' */
32420 L4_MABX_B.SFunction1_o31 = L4_MABX_P.tr0_range_Y0;
32421
32422 /* SystemInitialize for Outport: '<S506>/tr1_range' */
32423 L4_MABX_B.SFunction1_o32 = L4_MABX_P.tr1_range_Y0;
32424
32425 /* SystemInitialize for Outport: '<S506>/tr2_range' */
32426 L4_MABX_B.SFunction1_o33 = L4_MABX_P.tr2_range_Y0;
32427
32428 /* SystemInitialize for Outport: '<S506>/tr3_range' */
32429 L4_MABX_B.SFunction1_o34 = L4_MABX_P.tr3_range_Y0;
32430
32431 /* SystemInitialize for Outport: '<S506>/tr4_range' */
32432 L4_MABX_B.SFunction1_o35 = L4_MABX_P.tr4_range_Y0;
32433
32434 /* SystemInitialize for Outport: '<S506>/tr5_range' */
32435 L4_MABX_B.SFunction1_o36 = L4_MABX_P.tr5_range_Y0;
32436
32437 /* SystemInitialize for Outport: '<S506>/tr6_range' */
32438 L4_MABX_B.SFunction1_o37 = L4_MABX_P.tr6_range_Y0;
32439
32440 /* SystemInitialize for Outport: '<S506>/tr7_range' */
32441 L4_MABX_B.SFunction1_o38 = L4_MABX_P.tr7_range_Y0;
32442
32443 /* SystemInitialize for Outport: '<S506>/tr8_range' */
32444 L4_MABX_B.SFunction1_o39 = L4_MABX_P.tr8_range_Y0;
32445
32446 /* SystemInitialize for Outport: '<S506>/tr9_range' */
32447 L4_MABX_B.SFunction1_o40 = L4_MABX_P.tr9_range_Y0;
32448
32449 /* SystemInitialize for Outport: '<S506>/tr0_radar_confidence' */
32450 L4_MABX_B.SFunction1_o41 = L4_MABX_P.tr0_radar_confidence_Y0;
32451
32452 /* SystemInitialize for Outport: '<S506>/tr1_radar_confidence' */
32453 L4_MABX_B.SFunction1_o42 = L4_MABX_P.tr1_radar_confidence_Y0;
32454
32455 /* SystemInitialize for Outport: '<S506>/tr2_radar_confidence' */
32456 L4_MABX_B.SFunction1_o43 = L4_MABX_P.tr2_radar_confidence_Y0;
32457
32458 /* SystemInitialize for Outport: '<S506>/tr3_radar_confidence' */
32459 L4_MABX_B.SFunction1_o44 = L4_MABX_P.tr3_radar_confidence_Y0;
32460
32461 /* SystemInitialize for Outport: '<S506>/tr4_radar_confidence' */
32462 L4_MABX_B.SFunction1_o45 = L4_MABX_P.tr4_radar_confidence_Y0;
32463
32464 /* SystemInitialize for Outport: '<S506>/tr5_radar_confidence' */
32465 L4_MABX_B.SFunction1_o46 = L4_MABX_P.tr5_radar_confidence_Y0;
32466
32467 /* SystemInitialize for Outport: '<S506>/tr6_radar_confidence' */
32468 L4_MABX_B.SFunction1_o47 = L4_MABX_P.tr6_radar_confidence_Y0;
32469
32470 /* SystemInitialize for Outport: '<S506>/tr7_radar_confidence' */
32471 L4_MABX_B.SFunction1_o48 = L4_MABX_P.tr7_radar_confidence_Y0;
32472
32473 /* SystemInitialize for Outport: '<S506>/tr8_radar_confidence' */
32474 L4_MABX_B.SFunction1_o49 = L4_MABX_P.tr8_radar_confidence_Y0;
32475
32476 /* SystemInitialize for Outport: '<S506>/tr9_radar_confidence' */
32477 L4_MABX_B.SFunction1_o50 = L4_MABX_P.tr9_radar_confidence_Y0;
32478
32479 /* SystemInitialize for Outport: '<S506>/tr0_relative_velocitiy' */
32480 L4_MABX_B.SFunction1_o51 = L4_MABX_P.tr0_relative_velocitiy_Y0;
32481
32482 /* SystemInitialize for Outport: '<S506>/tr0_acceleration_over_ground' */
32483 L4_MABX_B.SFunction1_o52 = L4_MABX_P.tr0_acceleration_over_ground_Y0;
32484
32485 /* SystemInitialize for Outport: '<S506>/tr1_relative_velocitiy' */
32486 L4_MABX_B.SFunction1_o53 = L4_MABX_P.tr1_relative_velocitiy_Y0;
32487
32488 /* SystemInitialize for Outport: '<S506>/tr1_acceleration_over_ground' */
32489 L4_MABX_B.SFunction1_o54 = L4_MABX_P.tr1_acceleration_over_ground_Y0;
32490
32491 /* SystemInitialize for Outport: '<S506>/tr2_relative_velocitiy' */
32492 L4_MABX_B.SFunction1_o55 = L4_MABX_P.tr2_relative_velocitiy_Y0;
32493
32494 /* SystemInitialize for Outport: '<S506>/tr2_acceleration_over_ground' */
32495 L4_MABX_B.SFunction1_o56 = L4_MABX_P.tr2_acceleration_over_ground_Y0;
32496
32497 /* SystemInitialize for Outport: '<S506>/tr3_relative_velocitiy' */
32498 L4_MABX_B.SFunction1_o57 = L4_MABX_P.tr3_relative_velocitiy_Y0;
32499
32500 /* SystemInitialize for Outport: '<S506>/tr3_acceleration_over_ground' */
32501 L4_MABX_B.SFunction1_o58 = L4_MABX_P.tr3_acceleration_over_ground_Y0;
32502
32503 /* SystemInitialize for Outport: '<S506>/tr4_relative_velocitiy' */
32504 L4_MABX_B.SFunction1_o59 = L4_MABX_P.tr4_relative_velocitiy_Y0;
32505
32506 /* SystemInitialize for Outport: '<S506>/tr4_acceleration_over_ground' */
32507 L4_MABX_B.SFunction1_o60 = L4_MABX_P.tr4_acceleration_over_ground_Y0;
32508
32509 /* SystemInitialize for Outport: '<S506>/tr5_relative_velocitiy' */
32510 L4_MABX_B.SFunction1_o61 = L4_MABX_P.tr5_relative_velocitiy_Y0;
32511
32512 /* SystemInitialize for Outport: '<S506>/tr5_acceleration_over_ground' */
32513 L4_MABX_B.SFunction1_o62 = L4_MABX_P.tr5_acceleration_over_ground_Y0;
32514
32515 /* SystemInitialize for Outport: '<S506>/tr6_relative_velocitiy' */
32516 L4_MABX_B.SFunction1_o63 = L4_MABX_P.tr6_relative_velocitiy_Y0;
32517
32518 /* SystemInitialize for Outport: '<S506>/tr6_acceleration_over_ground' */
32519 L4_MABX_B.SFunction1_o64 = L4_MABX_P.tr6_acceleration_over_ground_Y0;
32520
32521 /* SystemInitialize for Outport: '<S506>/tr7_relative_velocitiy' */
32522 L4_MABX_B.SFunction1_o65 = L4_MABX_P.tr7_relative_velocitiy_Y0;
32523
32524 /* SystemInitialize for Outport: '<S506>/tr7_acceleration_over_ground' */
32525 L4_MABX_B.SFunction1_o66 = L4_MABX_P.tr7_acceleration_over_ground_Y0;
32526
32527 /* SystemInitialize for Outport: '<S506>/tr8_relative_velocitiy' */
32528 L4_MABX_B.SFunction1_o67 = L4_MABX_P.tr8_relative_velocitiy_Y0;
32529
32530 /* SystemInitialize for Outport: '<S506>/tr8_acceleration_over_ground' */
32531 L4_MABX_B.SFunction1_o68 = L4_MABX_P.tr8_acceleration_over_ground_Y0;
32532
32533 /* SystemInitialize for Outport: '<S506>/tr9_relative_velocitiy' */
32534 L4_MABX_B.SFunction1_o69 = L4_MABX_P.tr9_relative_velocitiy_Y0;
32535
32536 /* SystemInitialize for Outport: '<S506>/tr9_acceleration_over_ground' */
32537 L4_MABX_B.SFunction1_o70 = L4_MABX_P.tr9_acceleration_over_ground_Y0;
32538
32539 /* SystemInitialize for Outport: '<S506>/track_multiplexor' */
32540 L4_MABX_B.SFunction1_o71 = L4_MABX_P.track_multiplexor_Y0;
32541
32542 /* SystemInitialize for Outport: '<S506>/RX status' */
32543 L4_MABX_B.SFunction1_o72 = L4_MABX_P.RXstatus_Y0_b;
32544
32545 /* SystemInitialize for Outport: '<S506>/RX time' */
32546 L4_MABX_B.SFunction1_o73 = L4_MABX_P.RXtime_Y0_pr;
32547
32548 /* SystemInitialize for Outport: '<S506>/RX delta time' */
32549 L4_MABX_B.SFunction1_o74 = L4_MABX_P.RXdeltatime_Y0_d;
32550
32551 /* End of SystemInitialize for SubSystem: '<S505>/Tracks' */
32552
32553 /* SystemInitialize for Enabled SubSystem: '<S516>/EBC1_0B' */
32554 /* SystemInitialize for Outport: '<S517>/ASREngCtrlActive' */
32555 L4_MABX_B.SFunction1_o1_c1m = L4_MABX_P.ASREngCtrlActive_Y0;
32556
32557 /* SystemInitialize for Outport: '<S517>/ASRBrakeCtrlActive' */
32558 L4_MABX_B.SFunction1_o2_p2 = L4_MABX_P.ASRBrakeCtrlActive_Y0;
32559
32560 /* SystemInitialize for Outport: '<S517>/AntiLockBrakingActive' */
32561 L4_MABX_B.SFunction1_o3_iw = L4_MABX_P.AntiLockBrakingActive_Y0;
32562
32563 /* SystemInitialize for Outport: '<S517>/EBSBrakeSwitch' */
32564 L4_MABX_B.SFunction1_o4_iy = L4_MABX_P.EBSBrakeSwitch_Y0;
32565
32566 /* SystemInitialize for Outport: '<S517>/BrakePedalPos' */
32567 L4_MABX_B.SFunction1_o5_bm = L4_MABX_P.BrakePedalPos_Y0;
32568
32569 /* SystemInitialize for Outport: '<S517>/ABSOffroadSwitch' */
32570 L4_MABX_B.SFunction1_o6_e = L4_MABX_P.ABSOffroadSwitch_Y0;
32571
32572 /* SystemInitialize for Outport: '<S517>/ASROffroadSwitch' */
32573 L4_MABX_B.SFunction1_o7_gn = L4_MABX_P.ASROffroadSwitch_Y0;
32574
32575 /* SystemInitialize for Outport: '<S517>/ASRHillHolderSwitch' */
32576 L4_MABX_B.SFunction1_o8_cp = L4_MABX_P.ASRHillHolderSwitch_Y0;
32577
32578 /* SystemInitialize for Outport: '<S517>/TractionCtrlOverrideSwitch' */
32579 L4_MABX_B.SFunction1_o9_cuu = L4_MABX_P.TractionCtrlOverrideSwitch_Y0;
32580
32581 /* SystemInitialize for Outport: '<S517>/AccelInterlockSwitch' */
32582 L4_MABX_B.SFunction1_o10_g = L4_MABX_P.AccelInterlockSwitch_Y0;
32583
32584 /* SystemInitialize for Outport: '<S517>/EngDerateSwitch' */
32585 L4_MABX_B.SFunction1_o11_np = L4_MABX_P.EngDerateSwitch_Y0;
32586
32587 /* SystemInitialize for Outport: '<S517>/EngAuxShutdownSwitch' */
32588 L4_MABX_B.SFunction1_o12_b = L4_MABX_P.EngAuxShutdownSwitch_Y0;
32589
32590 /* SystemInitialize for Outport: '<S517>/RemoteAccelEnableSwitch' */
32591 L4_MABX_B.SFunction1_o13_n = L4_MABX_P.RemoteAccelEnableSwitch_Y0;
32592
32593 /* SystemInitialize for Outport: '<S517>/EngRetarderSelection' */
32594 L4_MABX_B.SFunction1_o14_j = L4_MABX_P.EngRetarderSelection_Y0;
32595
32596 /* SystemInitialize for Outport: '<S517>/ABSFullyOperational' */
32597 L4_MABX_B.SFunction1_o15_g = L4_MABX_P.ABSFullyOperational_Y0;
32598
32599 /* SystemInitialize for Outport: '<S517>/EBSRedWarningSignal' */
32600 L4_MABX_B.SFunction1_o16_e = L4_MABX_P.EBSRedWarningSignal_Y0;
32601
32602 /* SystemInitialize for Outport: '<S517>/ABS_EBSAmberWarningSignal' */
32603 L4_MABX_B.SFunction1_o17_m = L4_MABX_P.ABS_EBSAmberWarningSignal_Y0;
32604
32605 /* SystemInitialize for Outport: '<S517>/ATC_ASRInformationSignal' */
32606 L4_MABX_B.SFunction1_o18_o = L4_MABX_P.ATC_ASRInformationSignal_Y0;
32607
32608 /* SystemInitialize for Outport: '<S517>/SrcAddrssOfCtrllngDvcFrBrkCntrl' */
32609 L4_MABX_B.SFunction1_o19_c = L4_MABX_P.SrcAddrssOfCtrllngDvcFrBrkCntrl;
32610
32611 /* SystemInitialize for Outport: '<S517>/HaltBrakeSwitch' */
32612 L4_MABX_B.SFunction1_o20_n = L4_MABX_P.HaltBrakeSwitch_Y0;
32613
32614 /* SystemInitialize for Outport: '<S517>/TrailerABSStatus' */
32615 L4_MABX_B.SFunction1_o21_h = L4_MABX_P.TrailerABSStatus_Y0;
32616
32617 /* SystemInitialize for Outport: '<S517>/TrctrMntdTrilerABSWarningSignal' */
32618 L4_MABX_B.SFunction1_o22_k = L4_MABX_P.TrctrMntdTrilerABSWarningSignal;
32619
32620 /* SystemInitialize for Outport: '<S517>/RX status' */
32621 L4_MABX_B.SFunction1_o23_j = L4_MABX_P.RXstatus_Y0_g;
32622
32623 /* SystemInitialize for Outport: '<S517>/RX time' */
32624 L4_MABX_B.SFunction1_o24_c = L4_MABX_P.RXtime_Y0_e;
32625
32626 /* SystemInitialize for Outport: '<S517>/RX delta time' */
32627 L4_MABX_B.SFunction1_o25_b = L4_MABX_P.RXdeltatime_Y0_f;
32628
32629 /* End of SystemInitialize for SubSystem: '<S516>/EBC1_0B' */
32630
32631 /* SystemInitialize for Enabled SubSystem: '<S569>/EEC2_001' */
32632 /* SystemInitialize for Outport: '<S570>/SPN558_AccelPed1LowIdlSwitch' */
32633 L4_MABX_B.SFunction1_o1_kiv = L4_MABX_P.SPN558_AccelPed1LowIdlSwitch_Y0;
32634
32635 /* SystemInitialize for Outport: '<S570>/SPN559_AccelPedKickdownSw' */
32636 L4_MABX_B.SFunction1_o2_os = L4_MABX_P.SPN559_AccelPedKickdownSw_Y0;
32637
32638 /* SystemInitialize for Outport: '<S570>/SPN1437_RoadSpeedLimitStatus' */
32639 L4_MABX_B.SFunction1_o3_ot = L4_MABX_P.SPN1437_RoadSpeedLimitStatus_Y0;
32640
32641 /* SystemInitialize for Outport: '<S570>/SPN2970_AccelPed2LowIdlSwitch' */
32642 L4_MABX_B.SFunction1_o4_bm = L4_MABX_P.SPN2970_AccelPed2LowIdlSwitch_Y;
32643
32644 /* SystemInitialize for Outport: '<S570>/SPN91_AccelPedPos1' */
32645 L4_MABX_B.SFunction1_o5_nc = L4_MABX_P.SPN91_AccelPedPos1_Y0;
32646
32647 /* SystemInitialize for Outport: '<S570>/SPN92_EngPercLoadAtCurrSpd' */
32648 L4_MABX_B.SFunction1_o6_j4 = L4_MABX_P.SPN92_EngPercLoadAtCurrSpd_Y0;
32649
32650 /* SystemInitialize for Outport: '<S570>/SPN974_RemAccelPedalPosition' */
32651 L4_MABX_B.SFunction1_o7_g = L4_MABX_P.SPN974_RemAccelPedalPosition_Y0;
32652
32653 /* SystemInitialize for Outport: '<S570>/SPN29_AccelPedPos2' */
32654 L4_MABX_B.SFunction1_o8_fl = L4_MABX_P.SPN29_AccelPedPos2_Y0;
32655
32656 /* SystemInitialize for Outport: '<S570>/SPN2979_VehAccelRateLimStatus' */
32657 L4_MABX_B.SFunction1_o9_cu = L4_MABX_P.SPN2979_VehAccelRateLimStatus_Y;
32658
32659 /* SystemInitialize for Outport: '<S570>/SPN5021_MomEngMaxPwrEnFdbk' */
32660 L4_MABX_B.SFunction1_o10_p = L4_MABX_P.SPN5021_MomEngMaxPwrEnFdbk_Y0;
32661
32662 /* SystemInitialize for Outport: '<S570>/SPN5399_DPFThermMgmtActive' */
32663 L4_MABX_B.SFunction1_o11_e = L4_MABX_P.SPN5399_DPFThermMgmtActive_Y0;
32664
32665 /* SystemInitialize for Outport: '<S570>/SPN5400_SCRThermMgmtActive' */
32666 L4_MABX_B.SFunction1_o12_g = L4_MABX_P.SPN5400_SCRThermMgmtActive_Y0;
32667
32668 /* SystemInitialize for Outport: '<S570>/SPN3357_ActMaxAvailEngPercTrq' */
32669 L4_MABX_B.SFunction1_o13_c = L4_MABX_P.SPN3357_ActMaxAvailEngPercTrq_Y;
32670
32671 /* SystemInitialize for Outport: '<S570>/SPN5398_EstPumpingPercentTorque' */
32672 L4_MABX_B.SFunction1_o14_e = L4_MABX_P.SPN5398_EstPumpingPercentTorque;
32673
32674 /* SystemInitialize for Outport: '<S570>/RX status' */
32675 L4_MABX_B.SFunction1_o15_h = L4_MABX_P.RXstatus_Y0_h0;
32676
32677 /* SystemInitialize for Outport: '<S570>/RX time' */
32678 L4_MABX_B.SFunction1_o16_a = L4_MABX_P.RXtime_Y0_b;
32679
32680 /* SystemInitialize for Outport: '<S570>/RX delta time' */
32681 L4_MABX_B.SFunction1_o17_i = L4_MABX_P.RXdeltatime_Y0_h;
32682
32683 /* End of SystemInitialize for SubSystem: '<S569>/EEC2_001' */
32684
32685 /* SystemInitialize for Enabled SubSystem: '<S610>/CAN_TYPE1_RX_M1_C1' */
32686 /* SystemInitialize for Outport: '<S614>/EPBPCMInhibitStatusFeedback' */
32687 L4_MABX_B.SFunction1_o1_pg = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y0;
32688
32689 /* SystemInitialize for Outport: '<S614>/EPBPCMManualStatusFeedback' */
32690 L4_MABX_B.SFunction1_o2_kj = L4_MABX_P.EPBPCMManualStatusFeedback_Y0;
32691
32692 /* SystemInitialize for Outport: '<S614>/RX status' */
32693 L4_MABX_B.SFunction1_o3_ed = L4_MABX_P.RXstatus_Y0_bd;
32694
32695 /* SystemInitialize for Outport: '<S614>/RX time' */
32696 L4_MABX_B.SFunction1_o4_cs = L4_MABX_P.RXtime_Y0_lw;
32697
32698 /* SystemInitialize for Outport: '<S614>/RX delta time' */
32699 L4_MABX_B.SFunction1_o5_pf = L4_MABX_P.RXdeltatime_Y0_aq;
32700
32701 /* End of SystemInitialize for SubSystem: '<S610>/CAN_TYPE1_RX_M1_C1' */
32702
32703 /* SystemInitialize for Enabled SubSystem: '<S611>/CAN_TYPE1_RX_M1_C2' */
32704 /* SystemInitialize for Outport: '<S615>/EPBPCMInhibitStatusFeedback' */
32705 L4_MABX_B.SFunction1_o1_le = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y_j;
32706
32707 /* SystemInitialize for Outport: '<S615>/EPBPCMManualStatusFeedback' */
32708 L4_MABX_B.SFunction1_o2_hv = L4_MABX_P.EPBPCMManualStatusFeedback_Y0_o;
32709
32710 /* SystemInitialize for Outport: '<S615>/RX status' */
32711 L4_MABX_B.SFunction1_o3_gu = L4_MABX_P.RXstatus_Y0_ki;
32712
32713 /* SystemInitialize for Outport: '<S615>/RX time' */
32714 L4_MABX_B.SFunction1_o4_aj = L4_MABX_P.RXtime_Y0_oh;
32715
32716 /* SystemInitialize for Outport: '<S615>/RX delta time' */
32717 L4_MABX_B.SFunction1_o5_jm = L4_MABX_P.RXdeltatime_Y0_go;
32718
32719 /* End of SystemInitialize for SubSystem: '<S611>/CAN_TYPE1_RX_M1_C2' */
32720
32721 /* SystemInitialize for Enabled SubSystem: '<S612>/CAN_TYPE1_RX_M2_C1' */
32722 /* SystemInitialize for Outport: '<S616>/EPBPCMInhibitStatusFeedback' */
32723 L4_MABX_B.SFunction1_o1_mx = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y_e;
32724
32725 /* SystemInitialize for Outport: '<S616>/EPBPCMManualStatusFeedback' */
32726 L4_MABX_B.SFunction1_o2_f1 = L4_MABX_P.EPBPCMManualStatusFeedback_Y0_a;
32727
32728 /* SystemInitialize for Outport: '<S616>/RX status' */
32729 L4_MABX_B.SFunction1_o3_p = L4_MABX_P.RXstatus_Y0_hu;
32730
32731 /* SystemInitialize for Outport: '<S616>/RX time' */
32732 L4_MABX_B.SFunction1_o4_jl = L4_MABX_P.RXtime_Y0_lp;
32733
32734 /* SystemInitialize for Outport: '<S616>/RX delta time' */
32735 L4_MABX_B.SFunction1_o5_ez = L4_MABX_P.RXdeltatime_Y0_mx;
32736
32737 /* End of SystemInitialize for SubSystem: '<S612>/CAN_TYPE1_RX_M2_C1' */
32738
32739 /* SystemInitialize for Enabled SubSystem: '<S623>/PX2_LaneEdgeLeft' */
32740 /* SystemInitialize for Outport: '<S624>/PX2_LaneEdgeLeftAngle' */
32741 L4_MABX_B.SFunction1_o1_e = L4_MABX_P.PX2_LaneEdgeLeftAngle_Y0;
32742
32743 /* SystemInitialize for Outport: '<S624>/PX2_LaneEdgeLeftNumPoints' */
32744 L4_MABX_B.SFunction1_o2_hn = L4_MABX_P.PX2_LaneEdgeLeftNumPoints_Y0;
32745
32746 /* SystemInitialize for Outport: '<S624>/PX2_LaneEdgeLeftPosition' */
32747 L4_MABX_B.SFunction1_o3_hl = L4_MABX_P.PX2_LaneEdgeLeftPosition_Y0;
32748
32749 /* SystemInitialize for Outport: '<S624>/RX status' */
32750 L4_MABX_B.SFunction1_o4_bv = L4_MABX_P.RXstatus_Y0_gs;
32751
32752 /* SystemInitialize for Outport: '<S624>/RX time' */
32753 L4_MABX_B.SFunction1_o5_b = L4_MABX_P.RXtime_Y0_o3;
32754
32755 /* SystemInitialize for Outport: '<S624>/RX delta time' */
32756 L4_MABX_B.SFunction1_o6_d = L4_MABX_P.RXdeltatime_Y0_n2;
32757
32758 /* End of SystemInitialize for SubSystem: '<S623>/PX2_LaneEdgeLeft' */
32759
32760 /* SystemInitialize for Enabled SubSystem: '<S623>/PX2_LaneEdgeRight' */
32761 /* SystemInitialize for Outport: '<S625>/PX2_LaneEdgeRightAngle' */
32762 L4_MABX_B.SFunction1_o1_l3 = L4_MABX_P.PX2_LaneEdgeRightAngle_Y0;
32763
32764 /* SystemInitialize for Outport: '<S625>/PX2_LaneEdgeRightNumPoints' */
32765 L4_MABX_B.SFunction1_o2_it = L4_MABX_P.PX2_LaneEdgeRightNumPoints_Y0;
32766
32767 /* SystemInitialize for Outport: '<S625>/PX2_LaneEdgeRightPosition' */
32768 L4_MABX_B.SFunction1_o3_f4 = L4_MABX_P.PX2_LaneEdgeRightPosition_Y0;
32769
32770 /* SystemInitialize for Outport: '<S625>/RX status' */
32771 L4_MABX_B.SFunction1_o4_kj = L4_MABX_P.RXstatus_Y0_cd;
32772
32773 /* SystemInitialize for Outport: '<S625>/RX time' */
32774 L4_MABX_B.SFunction1_o5_d = L4_MABX_P.RXtime_Y0_cc;
32775
32776 /* SystemInitialize for Outport: '<S625>/RX delta time' */
32777 L4_MABX_B.SFunction1_o6_g = L4_MABX_P.RXdeltatime_Y0_l;
32778
32779 /* End of SystemInitialize for SubSystem: '<S623>/PX2_LaneEdgeRight' */
32780
32781 /* SystemInitialize for Enabled SubSystem: '<S634>/PX2_MapLaneEgoLeft' */
32782 /* SystemInitialize for Outport: '<S635>/PX2_MapLaneNearPos' */
32783 L4_MABX_B.SFunction1_o1_d1 = L4_MABX_P.PX2_MapLaneNearPos_Y0;
32784
32785 /* SystemInitialize for Outport: '<S635>/PX2_MapLaneMidPos' */
32786 L4_MABX_B.SFunction1_o2_kw = L4_MABX_P.PX2_MapLaneMidPos_Y0;
32787
32788 /* SystemInitialize for Outport: '<S635>/PX2_MapLaneFarPos' */
32789 L4_MABX_B.SFunction1_o3_bo = L4_MABX_P.PX2_MapLaneFarPos_Y0;
32790
32791 /* SystemInitialize for Outport: '<S635>/PX2_EgoLaneNearPosValid' */
32792 L4_MABX_B.SFunction1_o4_it = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0;
32793
32794 /* SystemInitialize for Outport: '<S635>/PX2_EgoLaneMidPosValid' */
32795 L4_MABX_B.SFunction1_o5_kh = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0;
32796
32797 /* SystemInitialize for Outport: '<S635>/PX2_EgoLaneFarPosValid' */
32798 L4_MABX_B.SFunction1_o6_fz = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0;
32799
32800 /* SystemInitialize for Outport: '<S635>/RX status' */
32801 L4_MABX_B.SFunction1_o7_lx = L4_MABX_P.RXstatus_Y0_ar;
32802
32803 /* SystemInitialize for Outport: '<S635>/RX time' */
32804 L4_MABX_B.SFunction1_o8_h = L4_MABX_P.RXtime_Y0_ch;
32805
32806 /* SystemInitialize for Outport: '<S635>/RX delta time' */
32807 L4_MABX_B.SFunction1_o9_n5 = L4_MABX_P.RXdeltatime_Y0_n4;
32808
32809 /* End of SystemInitialize for SubSystem: '<S634>/PX2_MapLaneEgoLeft' */
32810
32811 /* SystemInitialize for Enabled SubSystem: '<S636>/PX2_MapLaneEgoRight' */
32812 /* SystemInitialize for Outport: '<S637>/PX2_MapLaneNearPos' */
32813 L4_MABX_B.SFunction1_o1_fb = L4_MABX_P.PX2_MapLaneNearPos_Y0_e;
32814
32815 /* SystemInitialize for Outport: '<S637>/PX2_MapLaneMidPos' */
32816 L4_MABX_B.SFunction1_o2_ib = L4_MABX_P.PX2_MapLaneMidPos_Y0_c;
32817
32818 /* SystemInitialize for Outport: '<S637>/PX2_MapLaneFarPos' */
32819 L4_MABX_B.SFunction1_o3_cd = L4_MABX_P.PX2_MapLaneFarPos_Y0_a;
32820
32821 /* SystemInitialize for Outport: '<S637>/PX2_EgoLaneNearPosValid' */
32822 L4_MABX_B.SFunction1_o4_lt = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0_m;
32823
32824 /* SystemInitialize for Outport: '<S637>/PX2_EgoLaneMidPosValid' */
32825 L4_MABX_B.SFunction1_o5_j = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0_l;
32826
32827 /* SystemInitialize for Outport: '<S637>/PX2_EgoLaneFarPosValid' */
32828 L4_MABX_B.SFunction1_o6_l = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0_e;
32829
32830 /* SystemInitialize for Outport: '<S637>/RX status' */
32831 L4_MABX_B.SFunction1_o7_lm = L4_MABX_P.RXstatus_Y0_os;
32832
32833 /* SystemInitialize for Outport: '<S637>/RX time' */
32834 L4_MABX_B.SFunction1_o8_c = L4_MABX_P.RXtime_Y0_aa;
32835
32836 /* SystemInitialize for Outport: '<S637>/RX delta time' */
32837 L4_MABX_B.SFunction1_o9_lz = L4_MABX_P.RXdeltatime_Y0_if;
32838
32839 /* End of SystemInitialize for SubSystem: '<S636>/PX2_MapLaneEgoRight' */
32840
32841 /* SystemInitialize for Enabled SubSystem: '<S638>/PX2_EgoLanePos' */
32842 /* SystemInitialize for Outport: '<S639>/PX2_EgoLaneNearPosErr' */
32843 L4_MABX_B.SFunction1_o1_pv = L4_MABX_P.PX2_EgoLaneNearPosErr_Y0;
32844
32845 /* SystemInitialize for Outport: '<S639>/PX2_EgoLaneMidPosErr' */
32846 L4_MABX_B.SFunction1_o2_dx = L4_MABX_P.PX2_EgoLaneMidPosErr_Y0;
32847
32848 /* SystemInitialize for Outport: '<S639>/PX2_EgoLaneFarPosErr' */
32849 L4_MABX_B.SFunction1_o3_lt = L4_MABX_P.PX2_EgoLaneFarPosErr_Y0;
32850
32851 /* SystemInitialize for Outport: '<S639>/PX2_EgoLaneNearPosValid' */
32852 L4_MABX_B.SFunction1_o4_gk = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0_k;
32853
32854 /* SystemInitialize for Outport: '<S639>/PX2_EgoLaneMidPosValid' */
32855 L4_MABX_B.SFunction1_o5_k = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0_h;
32856
32857 /* SystemInitialize for Outport: '<S639>/PX2_EgoLaneFarPosValid' */
32858 L4_MABX_B.SFunction1_o6_a = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0_h;
32859
32860 /* SystemInitialize for Outport: '<S639>/RX status' */
32861 L4_MABX_B.SFunction1_o7_j = L4_MABX_P.RXstatus_Y0_lv;
32862
32863 /* SystemInitialize for Outport: '<S639>/RX time' */
32864 L4_MABX_B.SFunction1_o8_f = L4_MABX_P.RXtime_Y0_ge;
32865
32866 /* SystemInitialize for Outport: '<S639>/RX delta time' */
32867 L4_MABX_B.SFunction1_o9_n = L4_MABX_P.RXdeltatime_Y0_ch;
32868
32869 /* End of SystemInitialize for SubSystem: '<S638>/PX2_EgoLanePos' */
32870
32871 /* SystemInitialize for Enabled SubSystem: '<S648>/VEP1' */
32872 /* SystemInitialize for Outport: '<S649>/NetBatteryCurrent' */
32873 L4_MABX_B.SFunction1_o1_ki = L4_MABX_P.NetBatteryCurrent_Y0;
32874
32875 /* SystemInitialize for Outport: '<S649>/AltCurrent' */
32876 L4_MABX_B.SFunction1_o2_k = L4_MABX_P.AltCurrent_Y0;
32877
32878 /* SystemInitialize for Outport: '<S649>/ChargingSystemPotential' */
32879 L4_MABX_B.SFunction1_o3_hx = L4_MABX_P.ChargingSystemPotential_Y0;
32880
32881 /* SystemInitialize for Outport: '<S649>/BatteryPotential_PowerInput1' */
32882 L4_MABX_B.SFunction1_o4_o = L4_MABX_P.BatteryPotential_PowerInput1_Y0;
32883
32884 /* SystemInitialize for Outport: '<S649>/KeyswitchBatteryPotential' */
32885 L4_MABX_B.SFunction1_o5 = L4_MABX_P.KeyswitchBatteryPotential_Y0;
32886
32887 /* SystemInitialize for Outport: '<S649>/RX status' */
32888 L4_MABX_B.SFunction1_o6 = L4_MABX_P.RXstatus_Y0_ln;
32889
32890 /* SystemInitialize for Outport: '<S649>/RX time' */
32891 L4_MABX_B.SFunction1_o7 = L4_MABX_P.RXtime_Y0_eq;
32892
32893 /* SystemInitialize for Outport: '<S649>/RX delta time' */
32894 L4_MABX_B.SFunction1_o8 = L4_MABX_P.RXdeltatime_Y0_e;
32895
32896 /* End of SystemInitialize for SubSystem: '<S648>/VEP1' */
32897
32898 /* SystemInitialize for Enabled SubSystem: '<S471>/Decode_TPCM_CTS' */
32899 /* SystemInitialize for Outport: '<S690>/Out' */
32900 L4_MABX_B.SPN2556_ControlByte_p = (uint8_T)L4_MABX_P.Out_Y0_g;
32901 L4_MABX_B.SPN2561_NumberOfPacketsThatCanB = (uint8_T)L4_MABX_P.Out_Y0_g;
32902 L4_MABX_B.SPN2562_NextPacketNumberToBeSen = (uint8_T)L4_MABX_P.Out_Y0_g;
32903 L4_MABX_B.DataType_kx = (uint32_T)L4_MABX_P.Out_Y0_g;
32904
32905 /* End of SystemInitialize for SubSystem: '<S471>/Decode_TPCM_CTS' */
32906
32907 /* SystemInitialize for Enabled SubSystem: '<S471>/Decode_TPCM_ConnectionAbort' */
32908 /* SystemInitialize for Outport: '<S691>/Out' */
32909 L4_MABX_B.SPN2556_ControlByte_h = (uint8_T)L4_MABX_P.Out_Y0_k;
32910 L4_MABX_B.SPN2570_ConnectionAbortReason = (uint8_T)L4_MABX_P.Out_Y0_k;
32911 L4_MABX_B.DataType_ba = (uint32_T)L4_MABX_P.Out_Y0_k;
32912
32913 /* End of SystemInitialize for SubSystem: '<S471>/Decode_TPCM_ConnectionAbort' */
32914
32915 /* SystemInitialize for Enabled SubSystem: '<S471>/Decode_TPCM_EndOfMessageAck' */
32916 /* SystemInitialize for Outport: '<S692>/Out' */
32917 L4_MABX_B.SPN2556_ControlByte_e = (uint8_T)L4_MABX_P.Out_Y0_kl;
32918 L4_MABX_B.DataType_bm = (uint16_T)L4_MABX_P.Out_Y0_kl;
32919 L4_MABX_B.SPN2565_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_kl;
32920 L4_MABX_B.DataType_od = (uint32_T)L4_MABX_P.Out_Y0_kl;
32921
32922 /* End of SystemInitialize for SubSystem: '<S471>/Decode_TPCM_EndOfMessageAck' */
32923
32924 /* SystemInitialize for Enabled SubSystem: '<S471>/Decode_TPCM_RTS' */
32925 /* SystemInitialize for Outport: '<S693>/Out' */
32926 L4_MABX_B.SPN2556_ControlByte = (uint8_T)L4_MABX_P.Out_Y0_l;
32927 L4_MABX_B.DataType_fs = (uint16_T)L4_MABX_P.Out_Y0_l;
32928 L4_MABX_B.SPN2558_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_l;
32929 L4_MABX_B.SPN2559_MaximumNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_l;
32930 L4_MABX_B.DataType_mb = (uint32_T)L4_MABX_P.Out_Y0_l;
32931
32932 /* End of SystemInitialize for SubSystem: '<S471>/Decode_TPCM_RTS' */
32933
32934 /* SystemInitialize for Enabled SubSystem: '<S584>/CAN_TYPE1_RX_M1_C1' */
32935 /* SystemInitialize for Outport: '<S588>/byte1' */
32936 L4_MABX_B.SFunction1_o1_eh = L4_MABX_P.byte1_Y0_f;
32937
32938 /* SystemInitialize for Outport: '<S588>/byte2' */
32939 L4_MABX_B.SFunction1_o2_dw = L4_MABX_P.byte2_Y0_g4;
32940
32941 /* SystemInitialize for Outport: '<S588>/byte3' */
32942 L4_MABX_B.SFunction1_o3_m = L4_MABX_P.byte3_Y0_p;
32943
32944 /* SystemInitialize for Outport: '<S588>/byte4' */
32945 L4_MABX_B.SFunction1_o4_ho = L4_MABX_P.byte4_Y0_i;
32946
32947 /* SystemInitialize for Outport: '<S588>/byte5' */
32948 L4_MABX_B.SFunction1_o5_h3 = L4_MABX_P.byte5_Y0_l;
32949
32950 /* SystemInitialize for Outport: '<S588>/byte6' */
32951 L4_MABX_B.SFunction1_o6_db = L4_MABX_P.byte6_Y0_fw;
32952
32953 /* SystemInitialize for Outport: '<S588>/byte7' */
32954 L4_MABX_B.SFunction1_o7_ax = L4_MABX_P.byte7_Y0_h;
32955
32956 /* SystemInitialize for Outport: '<S588>/byte8' */
32957 L4_MABX_B.SFunction1_o8_o = L4_MABX_P.byte8_Y0_k;
32958
32959 /* SystemInitialize for Outport: '<S588>/RX status' */
32960 L4_MABX_B.SFunction1_o9_i = L4_MABX_P.RXstatus_Y0_n3;
32961
32962 /* SystemInitialize for Outport: '<S588>/RX time' */
32963 L4_MABX_B.SFunction1_o10_n = L4_MABX_P.RXtime_Y0_hw;
32964
32965 /* SystemInitialize for Outport: '<S588>/RX delta time' */
32966 L4_MABX_B.SFunction1_o11_n = L4_MABX_P.RXdeltatime_Y0_o;
32967
32968 /* End of SystemInitialize for SubSystem: '<S584>/CAN_TYPE1_RX_M1_C1' */
32969
32970 /* SystemInitialize for Enabled SubSystem: '<S585>/CAN_TYPE1_RX_M1_C2' */
32971 /* SystemInitialize for Outport: '<S589>/byte1' */
32972 L4_MABX_B.SFunction1_o1_ab = L4_MABX_P.byte1_Y0_o;
32973
32974 /* SystemInitialize for Outport: '<S589>/byte2' */
32975 L4_MABX_B.SFunction1_o2_on = L4_MABX_P.byte2_Y0_m;
32976
32977 /* SystemInitialize for Outport: '<S589>/byte3' */
32978 L4_MABX_B.SFunction1_o3_nl = L4_MABX_P.byte3_Y0_n;
32979
32980 /* SystemInitialize for Outport: '<S589>/byte4' */
32981 L4_MABX_B.SFunction1_o4_kt = L4_MABX_P.byte4_Y0_n;
32982
32983 /* SystemInitialize for Outport: '<S589>/byte5' */
32984 L4_MABX_B.SFunction1_o5_f = L4_MABX_P.byte5_Y0_ek;
32985
32986 /* SystemInitialize for Outport: '<S589>/byte6' */
32987 L4_MABX_B.SFunction1_o6_j = L4_MABX_P.byte6_Y0_fe;
32988
32989 /* SystemInitialize for Outport: '<S589>/byte7' */
32990 L4_MABX_B.SFunction1_o7_d = L4_MABX_P.byte7_Y0_b;
32991
32992 /* SystemInitialize for Outport: '<S589>/byte8' */
32993 L4_MABX_B.SFunction1_o8_m = L4_MABX_P.byte8_Y0_d;
32994
32995 /* SystemInitialize for Outport: '<S589>/RX status' */
32996 L4_MABX_B.SFunction1_o9_d = L4_MABX_P.RXstatus_Y0_kd;
32997
32998 /* SystemInitialize for Outport: '<S589>/RX time' */
32999 L4_MABX_B.SFunction1_o10_jf = L4_MABX_P.RXtime_Y0_c;
33000
33001 /* SystemInitialize for Outport: '<S589>/RX delta time' */
33002 L4_MABX_B.SFunction1_o11_l = L4_MABX_P.RXdeltatime_Y0_jb;
33003
33004 /* End of SystemInitialize for SubSystem: '<S585>/CAN_TYPE1_RX_M1_C2' */
33005
33006 /* SystemInitialize for Enabled SubSystem: '<S586>/CAN_TYPE1_RX_M3_C2' */
33007 /* SystemInitialize for Outport: '<S590>/byte1' */
33008 L4_MABX_B.SFunction1_o1_fo = L4_MABX_P.byte1_Y0_ay;
33009
33010 /* SystemInitialize for Outport: '<S590>/byte2' */
33011 L4_MABX_B.SFunction1_o2_fu = L4_MABX_P.byte2_Y0_f;
33012
33013 /* SystemInitialize for Outport: '<S590>/byte3' */
33014 L4_MABX_B.SFunction1_o3_e0 = L4_MABX_P.byte3_Y0_d;
33015
33016 /* SystemInitialize for Outport: '<S590>/byte4' */
33017 L4_MABX_B.SFunction1_o4_kh = L4_MABX_P.byte4_Y0_h;
33018
33019 /* SystemInitialize for Outport: '<S590>/byte5' */
33020 L4_MABX_B.SFunction1_o5_nq = L4_MABX_P.byte5_Y0_f;
33021
33022 /* SystemInitialize for Outport: '<S590>/byte6' */
33023 L4_MABX_B.SFunction1_o6_c = L4_MABX_P.byte6_Y0_m;
33024
33025 /* SystemInitialize for Outport: '<S590>/byte7' */
33026 L4_MABX_B.SFunction1_o7_c3 = L4_MABX_P.byte7_Y0_f;
33027
33028 /* SystemInitialize for Outport: '<S590>/byte8' */
33029 L4_MABX_B.SFunction1_o8_j4 = L4_MABX_P.byte8_Y0_d2;
33030
33031 /* SystemInitialize for Outport: '<S590>/RX status' */
33032 L4_MABX_B.SFunction1_o9_c5 = L4_MABX_P.RXstatus_Y0_ap;
33033
33034 /* SystemInitialize for Outport: '<S590>/RX time' */
33035 L4_MABX_B.SFunction1_o10_hf = L4_MABX_P.RXtime_Y0_g3;
33036
33037 /* SystemInitialize for Outport: '<S590>/RX delta time' */
33038 L4_MABX_B.SFunction1_o11_p = L4_MABX_P.RXdeltatime_Y0_g;
33039
33040 /* End of SystemInitialize for SubSystem: '<S586>/CAN_TYPE1_RX_M3_C2' */
33041
33042 /* SystemInitialize for Enabled SubSystem: '<S597>/CAN_TYPE1_RX_M1_C1' */
33043 /* SystemInitialize for Outport: '<S601>/byte1' */
33044 L4_MABX_B.SFunction1_o1_df = L4_MABX_P.byte1_Y0_c;
33045
33046 /* SystemInitialize for Outport: '<S601>/byte2' */
33047 L4_MABX_B.SFunction1_o2_gb = L4_MABX_P.byte2_Y0_b;
33048
33049 /* SystemInitialize for Outport: '<S601>/byte3' */
33050 L4_MABX_B.SFunction1_o3_jx = L4_MABX_P.byte3_Y0_f2;
33051
33052 /* SystemInitialize for Outport: '<S601>/byte4' */
33053 L4_MABX_B.SFunction1_o4_fu = L4_MABX_P.byte4_Y0_c;
33054
33055 /* SystemInitialize for Outport: '<S601>/byte5' */
33056 L4_MABX_B.SFunction1_o5_p4 = L4_MABX_P.byte5_Y0_d;
33057
33058 /* SystemInitialize for Outport: '<S601>/byte6' */
33059 L4_MABX_B.SFunction1_o6_fp = L4_MABX_P.byte6_Y0_j;
33060
33061 /* SystemInitialize for Outport: '<S601>/byte7' */
33062 L4_MABX_B.SFunction1_o7_c = L4_MABX_P.byte7_Y0_fb;
33063
33064 /* SystemInitialize for Outport: '<S601>/byte8' */
33065 L4_MABX_B.SFunction1_o8_b = L4_MABX_P.byte8_Y0_f;
33066
33067 /* SystemInitialize for Outport: '<S601>/RX status' */
33068 L4_MABX_B.SFunction1_o9_f = L4_MABX_P.RXstatus_Y0_n4;
33069
33070 /* SystemInitialize for Outport: '<S601>/RX time' */
33071 L4_MABX_B.SFunction1_o10_j = L4_MABX_P.RXtime_Y0_g1;
33072
33073 /* SystemInitialize for Outport: '<S601>/RX delta time' */
33074 L4_MABX_B.SFunction1_o11_j = L4_MABX_P.RXdeltatime_Y0_nm;
33075
33076 /* End of SystemInitialize for SubSystem: '<S597>/CAN_TYPE1_RX_M1_C1' */
33077
33078 /* SystemInitialize for Enabled SubSystem: '<S598>/CAN_TYPE1_RX_M1_C2' */
33079 /* SystemInitialize for Outport: '<S602>/byte1' */
33080 L4_MABX_B.SFunction1_o1_nw = L4_MABX_P.byte1_Y0_m;
33081
33082 /* SystemInitialize for Outport: '<S602>/byte2' */
33083 L4_MABX_B.SFunction1_o2_k5 = L4_MABX_P.byte2_Y0_l;
33084
33085 /* SystemInitialize for Outport: '<S602>/byte3' */
33086 L4_MABX_B.SFunction1_o3_hb = L4_MABX_P.byte3_Y0_i;
33087
33088 /* SystemInitialize for Outport: '<S602>/byte4' */
33089 L4_MABX_B.SFunction1_o4_id = L4_MABX_P.byte4_Y0_g;
33090
33091 /* SystemInitialize for Outport: '<S602>/byte5' */
33092 L4_MABX_B.SFunction1_o5_cl = L4_MABX_P.byte5_Y0_n;
33093
33094 /* SystemInitialize for Outport: '<S602>/byte6' */
33095 L4_MABX_B.SFunction1_o6_l1 = L4_MABX_P.byte6_Y0_l;
33096
33097 /* SystemInitialize for Outport: '<S602>/byte7' */
33098 L4_MABX_B.SFunction1_o7_o = L4_MABX_P.byte7_Y0_k;
33099
33100 /* SystemInitialize for Outport: '<S602>/byte8' */
33101 L4_MABX_B.SFunction1_o8_dp = L4_MABX_P.byte8_Y0_p;
33102
33103 /* SystemInitialize for Outport: '<S602>/RX status' */
33104 L4_MABX_B.SFunction1_o9_m = L4_MABX_P.RXstatus_Y0_m1;
33105
33106 /* SystemInitialize for Outport: '<S602>/RX time' */
33107 L4_MABX_B.SFunction1_o10_h = L4_MABX_P.RXtime_Y0_bb;
33108
33109 /* SystemInitialize for Outport: '<S602>/RX delta time' */
33110 L4_MABX_B.SFunction1_o11_h = L4_MABX_P.RXdeltatime_Y0_gb;
33111
33112 /* End of SystemInitialize for SubSystem: '<S598>/CAN_TYPE1_RX_M1_C2' */
33113
33114 /* SystemInitialize for Enabled SubSystem: '<S599>/CAN_TYPE1_RX_M3_C2' */
33115 /* SystemInitialize for Outport: '<S603>/byte1' */
33116 L4_MABX_B.SFunction1_o1_m5 = L4_MABX_P.byte1_Y0_p;
33117
33118 /* SystemInitialize for Outport: '<S603>/byte2' */
33119 L4_MABX_B.SFunction1_o2_j = L4_MABX_P.byte2_Y0_lq;
33120
33121 /* SystemInitialize for Outport: '<S603>/byte3' */
33122 L4_MABX_B.SFunction1_o3_fim = L4_MABX_P.byte3_Y0_g;
33123
33124 /* SystemInitialize for Outport: '<S603>/byte4' */
33125 L4_MABX_B.SFunction1_o4_n4 = L4_MABX_P.byte4_Y0_ct;
33126
33127 /* SystemInitialize for Outport: '<S603>/byte5' */
33128 L4_MABX_B.SFunction1_o5_h = L4_MABX_P.byte5_Y0_fj;
33129
33130 /* SystemInitialize for Outport: '<S603>/byte6' */
33131 L4_MABX_B.SFunction1_o6_dw = L4_MABX_P.byte6_Y0_o;
33132
33133 /* SystemInitialize for Outport: '<S603>/byte7' */
33134 L4_MABX_B.SFunction1_o7_a = L4_MABX_P.byte7_Y0_j;
33135
33136 /* SystemInitialize for Outport: '<S603>/byte8' */
33137 L4_MABX_B.SFunction1_o8_d = L4_MABX_P.byte8_Y0_o;
33138
33139 /* SystemInitialize for Outport: '<S603>/RX status' */
33140 L4_MABX_B.SFunction1_o9_g = L4_MABX_P.RXstatus_Y0_ml;
33141
33142 /* SystemInitialize for Outport: '<S603>/RX time' */
33143 L4_MABX_B.SFunction1_o10_e = L4_MABX_P.RXtime_Y0_a2;
33144
33145 /* SystemInitialize for Outport: '<S603>/RX delta time' */
33146 L4_MABX_B.SFunction1_o11_d = L4_MABX_P.RXdeltatime_Y0_d3;
33147
33148 /* End of SystemInitialize for SubSystem: '<S599>/CAN_TYPE1_RX_M3_C2' */
33149
33150 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
33151 /* InitializeConditions for UnitDelay: '<S30>/Unit_Delay' */
33152 L4_MABX_DW.Unit_Delay_DSTATE_f1 = L4_MABX_P.Unit_Delay_InitialCondition_e3;
33153
33154 /* InitializeConditions for UnitDelay: '<S31>/Unit Delay' */
33155 L4_MABX_DW.UnitDelay_DSTATE_j = L4_MABX_P.UnitDelay_InitialCondition_n;
33156
33157 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
33158
33159 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
33160 /* InitializeConditions for UnitDelay: '<S54>/Unit_Delay' */
33161 L4_MABX_DW.Unit_Delay_DSTATE_i5 = L4_MABX_P.Unit_Delay_InitialCondition_o;
33162
33163 /* InitializeConditions for UnitDelay: '<S55>/Unit Delay' */
33164 L4_MABX_DW.UnitDelay_DSTATE_p = L4_MABX_P.UnitDelay_InitialCondition_p;
33165
33166 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
33167
33168 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
33169 /* InitializeConditions for UnitDelay: '<S60>/Unit_Delay' */
33170 L4_MABX_DW.Unit_Delay_DSTATE_l5 = L4_MABX_P.Unit_Delay_InitialCondition_le;
33171
33172 /* InitializeConditions for UnitDelay: '<S61>/Unit Delay' */
33173 L4_MABX_DW.UnitDelay_DSTATE_dr = L4_MABX_P.UnitDelay_InitialCondition_iv;
33174
33175 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
33176
33177 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
33178 /* InitializeConditions for UnitDelay: '<S42>/Unit_Delay' */
33179 L4_MABX_DW.Unit_Delay_DSTATE_h41 = L4_MABX_P.Unit_Delay_InitialCondition_m;
33180
33181 /* InitializeConditions for UnitDelay: '<S43>/Unit Delay' */
33182 L4_MABX_DW.UnitDelay_DSTATE_dr4 = L4_MABX_P.UnitDelay_InitialCondition_hk;
33183
33184 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
33185
33186 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
33187 /* InitializeConditions for UnitDelay: '<S48>/Unit_Delay' */
33188 L4_MABX_DW.Unit_Delay_DSTATE_mq = L4_MABX_P.Unit_Delay_InitialCondition_bo;
33189
33190 /* InitializeConditions for UnitDelay: '<S49>/Unit Delay' */
33191 L4_MABX_DW.UnitDelay_DSTATE_h = L4_MABX_P.UnitDelay_InitialCondition_l;
33192
33193 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
33194
33195 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
33196 /* InitializeConditions for UnitDelay: '<S36>/Unit_Delay' */
33197 L4_MABX_DW.Unit_Delay_DSTATE_je = L4_MABX_P.Unit_Delay_InitialCondition_in;
33198
33199 /* InitializeConditions for UnitDelay: '<S37>/Unit Delay' */
33200 L4_MABX_DW.UnitDelay_DSTATE_b = L4_MABX_P.UnitDelay_InitialCondition_m;
33201
33202 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
33203 }
33204}
33205
33206/* Model terminate function */
33207void L4_MABX_terminate(void)
33208{
33209 /* Terminate for Atomic SubSystem: '<S851>/CAN_TX_1000ms' */
33210
33211 /* Terminate for Enabled SubSystem: '<S871>/AIR1' */
33212
33213 /* Terminate for S-Function (rti_commonblock): '<S872>/S-Function1' */
33214
33215 /* dSPACE RTICAN TX Message Block: "AIR1" Id:419343921 */
33216 {
33217 /* ... Set the message into sleep mode */
33218 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
33219 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31])) ==
33220 DSMCOM_BUFFER_OVERFLOW) ;
33221 }
33222
33223 /* End of Terminate for SubSystem: '<S871>/AIR1' */
33224
33225 /* Terminate for Enabled SubSystem: '<S879>/AMB' */
33226
33227 /* Terminate for S-Function (rti_commonblock): '<S880>/S-Function1' */
33228
33229 /* dSPACE RTICAN TX Message Block: "AMB" Id:419362048 */
33230 {
33231 /* ... Set the message into sleep mode */
33232 while ((rtican_type1_tq_error[1][4] = can_tp1_msg_sleep
33233 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500])) ==
33234 DSMCOM_BUFFER_OVERFLOW) ;
33235 }
33236
33237 /* End of Terminate for SubSystem: '<S879>/AMB' */
33238
33239 /* End of Terminate for SubSystem: '<S851>/CAN_TX_1000ms' */
33240
33241 /* Terminate for S-Function (dsa_tcpip_setup_sfcn): '<S401>/dsa_tcpip_setup' */
33242 /* Level2 S-Function Block: '<S401>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
33243 {
33244 SimStruct *rts = L4_MABX_M->childSfunctions[3];
33245 sfcnTerminate(rts);
33246 }
33247
33248 /* Terminate for S-Function (dsa_tcpip_udp_sfcn): '<S402>/TCPIP_Com' */
33249 /* Level2 S-Function Block: '<S402>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
33250 {
33251 SimStruct *rts = L4_MABX_M->childSfunctions[4];
33252 sfcnTerminate(rts);
33253 }
33254
33255 /* Terminate for Atomic SubSystem: '<S851>/CAN_TX_100ms' */
33256
33257 /* Terminate for Enabled SubSystem: '<S910>/PropB_XPR_FC' */
33258
33259 /* Terminate for S-Function (rti_commonblock): '<S912>/S-Function1' */
33260
33261 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
33262 {
33263 /* ... Set the message into sleep mode */
33264 while ((rtican_type1_tq_error[0][4] = can_tp1_msg_sleep
33265 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC])) ==
33266 DSMCOM_BUFFER_OVERFLOW) ;
33267 }
33268
33269 /* End of Terminate for SubSystem: '<S910>/PropB_XPR_FC' */
33270
33271 /* Terminate for Enabled SubSystem: '<S911>/PropB_XPR_FC' */
33272
33273 /* Terminate for S-Function (rti_commonblock): '<S913>/S-Function1' */
33274
33275 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
33276 {
33277 /* ... Set the message into sleep mode */
33278 while ((rtican_type1_tq_error[1][4] = can_tp1_msg_sleep
33279 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC])) ==
33280 DSMCOM_BUFFER_OVERFLOW) ;
33281 }
33282
33283 /* End of Terminate for SubSystem: '<S911>/PropB_XPR_FC' */
33284
33285 /* Terminate for Enabled SubSystem: '<S940>/Std_PosRapidUpdate_01' */
33286
33287 /* Terminate for S-Function (rti_commonblock): '<S941>/S-Function1' */
33288
33289 /* dSPACE RTICAN TX Message Block: "Std_PosRapidUpdate_01" Id:3 */
33290 {
33291 /* ... Set the message into sleep mode */
33292 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33293 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3])) ==
33294 DSMCOM_BUFFER_OVERFLOW) ;
33295 }
33296
33297 /* End of Terminate for SubSystem: '<S940>/Std_PosRapidUpdate_01' */
33298
33299 /* Terminate for Enabled SubSystem: '<S890>/CCVS1_00' */
33300
33301 /* Terminate for S-Function (rti_commonblock): '<S892>/S-Function1' */
33302
33303 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:419361024 */
33304 {
33305 /* ... Set the message into sleep mode */
33306 while ((rtican_type1_tq_error[0][3] = can_tp1_msg_sleep
33307 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100])) ==
33308 DSMCOM_BUFFER_OVERFLOW) ;
33309 }
33310
33311 /* End of Terminate for SubSystem: '<S890>/CCVS1_00' */
33312
33313 /* Terminate for Enabled SubSystem: '<S891>/CCVS1_00' */
33314
33315 /* Terminate for S-Function (rti_commonblock): '<S893>/S-Function1' */
33316
33317 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:218034432 */
33318 {
33319 /* ... Set the message into sleep mode */
33320 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
33321 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100])) ==
33322 DSMCOM_BUFFER_OVERFLOW) ;
33323 }
33324
33325 /* End of Terminate for SubSystem: '<S891>/CCVS1_00' */
33326
33327 /* Terminate for Enabled SubSystem: '<S894>/PropB_REAX_5_E4' */
33328
33329 /* Terminate for S-Function (rti_commonblock): '<S896>/S-Function1' incorporates:
33330 * Constant: '<S894>/Constant'
33331 * Constant: '<S894>/Constant1'
33332 */
33333
33334 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
33335 {
33336 /* ... Set the message into sleep mode */
33337 while ((rtican_type1_tq_error[0][5] = can_tp1_msg_sleep
33338 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFFAE4])) ==
33339 DSMCOM_BUFFER_OVERFLOW) ;
33340 }
33341
33342 /* End of Terminate for SubSystem: '<S894>/PropB_REAX_5_E4' */
33343
33344 /* Terminate for Enabled SubSystem: '<S895>/PropB_REAX_5_E4' */
33345
33346 /* Terminate for S-Function (rti_commonblock): '<S897>/S-Function1' incorporates:
33347 * Constant: '<S895>/Constant'
33348 * Constant: '<S895>/Constant1'
33349 */
33350
33351 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
33352 {
33353 /* ... Set the message into sleep mode */
33354 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
33355 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFFAE4])) ==
33356 DSMCOM_BUFFER_OVERFLOW) ;
33357 }
33358
33359 /* End of Terminate for SubSystem: '<S895>/PropB_REAX_5_E4' */
33360
33361 /* Terminate for Enabled SubSystem: '<S914>/Std_COGSOGRapidUpdate_01' */
33362
33363 /* Terminate for S-Function (rti_commonblock): '<S915>/S-Function1' incorporates:
33364 * Constant: '<S914>/Constant'
33365 * Constant: '<S914>/Constant1'
33366 */
33367
33368 /* dSPACE RTICAN TX Message Block: "Std_COGSOGRapidUpdate_01" Id:7 */
33369 {
33370 /* ... Set the message into sleep mode */
33371 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33372 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X7])) ==
33373 DSMCOM_BUFFER_OVERFLOW) ;
33374 }
33375
33376 /* End of Terminate for SubSystem: '<S914>/Std_COGSOGRapidUpdate_01' */
33377
33378 /* Terminate for Enabled SubSystem: '<S916>/EBC1_TX' */
33379
33380 /* Terminate for S-Function (rti_commonblock): '<S917>/S-Function1' */
33381
33382 /* dSPACE RTICAN TX Message Block: "EBC1_TX" Id:418382219 */
33383 {
33384 /* ... Set the message into sleep mode */
33385 while ((rtican_type1_tq_error[0][2] = can_tp1_msg_sleep
33386 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B])) ==
33387 DSMCOM_BUFFER_OVERFLOW) ;
33388 }
33389
33390 /* End of Terminate for SubSystem: '<S916>/EBC1_TX' */
33391
33392 /* End of Terminate for SubSystem: '<S851>/CAN_TX_100ms' */
33393
33394 /* Terminate for Atomic SubSystem: '<S851>/CAN_TX_10ms' */
33395
33396 /* Terminate for Enabled SubSystem: '<S953>/ACCS' */
33397
33398 /* Terminate for S-Function (rti_commonblock): '<S954>/S-Function1' */
33399
33400 /* dSPACE RTICAN TX Message Block: "ACCS" Id:418393572 */
33401 {
33402 /* ... Set the message into sleep mode */
33403 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
33404 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4])) ==
33405 DSMCOM_BUFFER_OVERFLOW) ;
33406 }
33407
33408 /* End of Terminate for SubSystem: '<S953>/ACCS' */
33409
33410 /* Terminate for Enabled SubSystem: '<S961>/EEC1_00' */
33411
33412 /* Terminate for S-Function (rti_commonblock): '<S963>/S-Function1' */
33413
33414 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
33415 {
33416 /* ... Set the message into sleep mode */
33417 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
33418 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400])) ==
33419 DSMCOM_BUFFER_OVERFLOW) ;
33420 }
33421
33422 /* End of Terminate for SubSystem: '<S961>/EEC1_00' */
33423
33424 /* Terminate for Enabled SubSystem: '<S962>/EEC1_00' */
33425
33426 /* Terminate for S-Function (rti_commonblock): '<S964>/S-Function1' */
33427
33428 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
33429 {
33430 /* ... Set the message into sleep mode */
33431 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
33432 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400])) ==
33433 DSMCOM_BUFFER_OVERFLOW) ;
33434 }
33435
33436 /* End of Terminate for SubSystem: '<S962>/EEC1_00' */
33437
33438 /* Terminate for Enabled SubSystem: '<S965>/PropB_REAX_1_E4' */
33439
33440 /* Terminate for S-Function (rti_commonblock): '<S967>/S-Function1' incorporates:
33441 * Constant: '<S965>/Constant'
33442 * Constant: '<S965>/Constant1'
33443 */
33444
33445 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
33446 {
33447 /* ... Set the message into sleep mode */
33448 while ((rtican_type1_tq_error[0][4] = can_tp1_msg_sleep
33449 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFEFE4])) ==
33450 DSMCOM_BUFFER_OVERFLOW) ;
33451 }
33452
33453 /* End of Terminate for SubSystem: '<S965>/PropB_REAX_1_E4' */
33454
33455 /* Terminate for Enabled SubSystem: '<S966>/PropB_REAX_1_E4' */
33456
33457 /* Terminate for S-Function (rti_commonblock): '<S968>/S-Function1' incorporates:
33458 * Constant: '<S966>/Constant'
33459 * Constant: '<S966>/Constant1'
33460 */
33461
33462 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
33463 {
33464 /* ... Set the message into sleep mode */
33465 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
33466 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFEFE4])) ==
33467 DSMCOM_BUFFER_OVERFLOW) ;
33468 }
33469
33470 /* End of Terminate for SubSystem: '<S966>/PropB_REAX_1_E4' */
33471
33472 /* Terminate for Enabled SubSystem: '<S975>/VDC2_0B' */
33473
33474 /* Terminate for S-Function (rti_commonblock): '<S976>/S-Function1' */
33475
33476 /* dSPACE RTICAN TX Message Block: "VDC2_0B" Id:418384139 */
33477 {
33478 /* ... Set the message into sleep mode */
33479 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
33480 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B])) ==
33481 DSMCOM_BUFFER_OVERFLOW) ;
33482 }
33483
33484 /* End of Terminate for SubSystem: '<S975>/VDC2_0B' */
33485
33486 /* End of Terminate for SubSystem: '<S851>/CAN_TX_10ms' */
33487
33488 /* Terminate for Atomic SubSystem: '<S851>/CAN_TX_20ms' */
33489
33490 /* Terminate for Enabled SubSystem: '<S1020>/PropB_XBR_B3' */
33491
33492 /* Terminate for S-Function (rti_commonblock): '<S1021>/S-Function1' */
33493
33494 /* dSPACE RTICAN TX Message Block: "PropB_XBR_B3" Id:218038707 */
33495 {
33496 /* ... Set the message into sleep mode */
33497 while ((rtican_type1_tq_error[1][2] = can_tp1_msg_sleep
33498 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3])) ==
33499 DSMCOM_BUFFER_OVERFLOW) ;
33500 }
33501
33502 /* End of Terminate for SubSystem: '<S1020>/PropB_XBR_B3' */
33503
33504 /* Terminate for Enabled SubSystem: '<S1022>/PropB_Bendix_2C2_XPR' */
33505
33506 /* Terminate for S-Function (rti_commonblock): '<S1023>/S-Function1' */
33507
33508 /* dSPACE RTICAN TX Message Block: "PropB_Bendix_2C2_XPR" Id:218060389 */
33509 {
33510 /* ... Set the message into sleep mode */
33511 while ((rtican_type1_tq_error[1][2] = can_tp1_msg_sleep
33512 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665])) ==
33513 DSMCOM_BUFFER_OVERFLOW) ;
33514 }
33515
33516 /* End of Terminate for SubSystem: '<S1022>/PropB_Bendix_2C2_XPR' */
33517
33518 /* Terminate for Enabled SubSystem: '<S1030>/Std_OdometryData' */
33519
33520 /* Terminate for S-Function (rti_commonblock): '<S1031>/S-Function1' */
33521
33522 /* dSPACE RTICAN TX Message Block: "Std_OdometryData" Id:10 */
33523 {
33524 /* ... Set the message into sleep mode */
33525 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33526 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA])) ==
33527 DSMCOM_BUFFER_OVERFLOW) ;
33528 }
33529
33530 /* End of Terminate for SubSystem: '<S1030>/Std_OdometryData' */
33531
33532 /* End of Terminate for SubSystem: '<S851>/CAN_TX_20ms' */
33533
33534 /* Terminate for Atomic SubSystem: '<S851>/CAN_TX_5000ms' */
33535
33536 /* Terminate for Enabled SubSystem: '<S1045>/RQST_13_E4' */
33537
33538 /* Terminate for S-Function (rti_commonblock): '<S1047>/S-Function1' */
33539
33540 /* dSPACE RTICAN TX Message Block: "RQST_13_E4" Id:417993700 */
33541 {
33542 /* ... Set the message into sleep mode */
33543 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
33544 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4])) ==
33545 DSMCOM_BUFFER_OVERFLOW) ;
33546 }
33547
33548 /* End of Terminate for SubSystem: '<S1045>/RQST_13_E4' */
33549
33550 /* End of Terminate for SubSystem: '<S851>/CAN_TX_5000ms' */
33551
33552 /* Terminate for Atomic SubSystem: '<S851>/CAN_TX_50ms' */
33553
33554 /* Terminate for Enabled SubSystem: '<S1056>/CCVS1_E3' */
33555
33556 /* Terminate for S-Function (rti_commonblock): '<S1058>/S-Function1' */
33557
33558 /* dSPACE RTICAN TX Message Block: "CCVS1_E3" Id:419361251 */
33559 {
33560 /* ... Set the message into sleep mode */
33561 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
33562 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3])) ==
33563 DSMCOM_BUFFER_OVERFLOW) ;
33564 }
33565
33566 /* End of Terminate for SubSystem: '<S1056>/CCVS1_E3' */
33567
33568 /* Terminate for Enabled SubSystem: '<S1057>/TC1_03_05' */
33569
33570 /* Terminate for S-Function (rti_commonblock): '<S1059>/S-Function1' */
33571
33572 /* dSPACE RTICAN TX Message Block: "TC1_03_05" Id:201392901 */
33573 {
33574 /* ... Set the message into sleep mode */
33575 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
33576 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305])) ==
33577 DSMCOM_BUFFER_OVERFLOW) ;
33578 }
33579
33580 /* End of Terminate for SubSystem: '<S1057>/TC1_03_05' */
33581
33582 /* End of Terminate for SubSystem: '<S851>/CAN_TX_50ms' */
33583
33584 /* Terminate for Enabled SubSystem: '<S1069>/Std_SystemTime_01' */
33585
33586 /* Terminate for S-Function (rti_commonblock): '<S1071>/S-Function1' incorporates:
33587 * Constant: '<S1069>/Constant'
33588 * Constant: '<S1069>/Constant1'
33589 */
33590
33591 /* dSPACE RTICAN TX Message Block: "Std_SystemTime_01" Id:5 */
33592 {
33593 /* ... Set the message into sleep mode */
33594 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33595 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X5])) ==
33596 DSMCOM_BUFFER_OVERFLOW) ;
33597 }
33598
33599 /* End of Terminate for SubSystem: '<S1069>/Std_SystemTime_01' */
33600
33601 /* Terminate for Triggered SubSystem: '<S1064>/CAN_TYPE1_TX_M1_C1' */
33602
33603 /* Terminate for S-Function (rti_commonblock): '<S1066>/S-Function1' */
33604
33605 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418184965 */
33606 {
33607 /* ... Set the message into sleep mode */
33608 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33609 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05])) ==
33610 DSMCOM_BUFFER_OVERFLOW) ;
33611 }
33612
33613 /* End of Terminate for SubSystem: '<S1064>/CAN_TYPE1_TX_M1_C1' */
33614
33615 /* Terminate for Triggered SubSystem: '<S1065>/CAN_TYPE1_TX_M1_C1' */
33616
33617 /* Terminate for S-Function (rti_commonblock): '<S1067>/S-Function1' */
33618
33619 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418119429 */
33620 {
33621 /* ... Set the message into sleep mode */
33622 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33623 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05])) ==
33624 DSMCOM_BUFFER_OVERFLOW) ;
33625 }
33626
33627 /* End of Terminate for SubSystem: '<S1065>/CAN_TYPE1_TX_M1_C1' */
33628
33629 /* Terminate for S-Function (rti_commonblock): '<S1072>/S-Function1' */
33630
33631 /* disable digital output channel 4 on port 1 *
33632 * (set to high-impedance), when the simulation terminates */
33633 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH4,
33634 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
33635
33636 /* Terminate for S-Function (rti_commonblock): '<S1073>/S-Function1' */
33637
33638 /* disable digital output channel 2 on port 1 *
33639 * (set to high-impedance), when the simulation terminates */
33640 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH2,
33641 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
33642
33643 /* Terminate for S-Function (rti_commonblock): '<S1074>/S-Function1' */
33644
33645 /* disable digital output channel 1 on port 1 *
33646 * (set to high-impedance), when the simulation terminates */
33647 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH1,
33648 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
33649
33650 /* Terminate for S-Function (rti_commonblock): '<S1075>/S-Function1' */
33651
33652 /* disable digital output channel 3 on port 1 *
33653 * (set to high-impedance), when the simulation terminates */
33654 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH3,
33655 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
33656
33657 /* Terminate for S-Function (rti_commonblock): '<S1076>/S-Function1' */
33658
33659 /* disable digital output channel 1 on port 2 *
33660 * (set to high-impedance), when the simulation terminates */
33661 dio_tp4_pwm_init(DIO_TP4_1_MODULE_ADDR, 2, DIO_TP4_MASK_CH1,
33662 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE, DIO_TP4_TIMING_RANGE2,
33663 DIO_TP4_PWM);
33664
33665 /* Terminate for S-Function (rti_commonblock): '<S1077>/S-Function1' */
33666
33667 /* disable digital output channel 2 on port 2 *
33668 * (set to high-impedance), when the simulation terminates */
33669 dio_tp4_pwm_init(DIO_TP4_1_MODULE_ADDR, 2, DIO_TP4_MASK_CH2,
33670 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE, DIO_TP4_TIMING_RANGE2,
33671 DIO_TP4_PWM);
33672
33673 /* Terminate for S-Function (rti_commonblock): '<S410>/S-Function1' incorporates:
33674 * SubSystem: '<S401>/Background_Task'
33675 */
33676 L4_MAB_Background_Task_Term();
33677
33678 /* End of Terminate for S-Function (rti_commonblock): '<S410>/S-Function1' */
33679
33680 /* Terminate for S-Function (rti_commonblock): '<S416>/S-Function1' incorporates:
33681 * SubSystem: '<S401>/Interrupt_Task'
33682 */
33683 L4_MABX_Interrupt_Task_Term();
33684
33685 /* End of Terminate for S-Function (rti_commonblock): '<S416>/S-Function1' */
33686
33687 /* Terminate for S-Function (rti_commonblock): '<S462>/S-Function1' */
33688
33689 /* dSPACE RTICAN STD Srvc-Message Block */
33690 {
33691 /* ... Set the message into sleep mode */
33692 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
33693 (CANTP1_RX_SPMSG_M1_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33694 }
33695
33696 /* dSPACE RTICAN XTD Srvc-Message Block */
33697 {
33698 /* ... Set the message into sleep mode */
33699 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33700 (CANTP1_RX_SPMSG_M1_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33701 }
33702
33703 /* Terminate for S-Function (rti_commonblock): '<S463>/S-Function1' */
33704
33705 /* dSPACE RTICAN STD Srvc-Message Block */
33706 {
33707 /* ... Set the message into sleep mode */
33708 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
33709 (CANTP1_RX_SPMSG_M1_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33710 }
33711
33712 /* dSPACE RTICAN XTD Srvc-Message Block */
33713 {
33714 /* ... Set the message into sleep mode */
33715 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33716 (CANTP1_RX_SPMSG_M1_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33717 }
33718
33719 /* Terminate for S-Function (rti_commonblock): '<S464>/S-Function1' */
33720
33721 /* dSPACE RTICAN STD Srvc-Message Block */
33722 {
33723 /* ... Set the message into sleep mode */
33724 while ((rtican_type1_tq_error[1][0] = can_tp1_msg_sleep
33725 (CANTP1_RX_SPMSG_M2_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33726 }
33727
33728 /* dSPACE RTICAN XTD Srvc-Message Block */
33729 {
33730 /* ... Set the message into sleep mode */
33731 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
33732 (CANTP1_RX_SPMSG_M2_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33733 }
33734
33735 /* Terminate for S-Function (rti_commonblock): '<S465>/S-Function1' */
33736
33737 /* dSPACE RTICAN STD Srvc-Message Block */
33738 {
33739 /* ... Set the message into sleep mode */
33740 while ((rtican_type1_tq_error[1][0] = can_tp1_msg_sleep
33741 (CANTP1_RX_SPMSG_M2_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33742 }
33743
33744 /* dSPACE RTICAN XTD Srvc-Message Block */
33745 {
33746 /* ... Set the message into sleep mode */
33747 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
33748 (CANTP1_RX_SPMSG_M2_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33749 }
33750
33751 /* Terminate for S-Function (rti_commonblock): '<S466>/S-Function1' */
33752
33753 /* dSPACE RTICAN STD Srvc-Message Block */
33754 {
33755 /* ... Set the message into sleep mode */
33756 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33757 (CANTP1_RX_SPMSG_M3_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33758 }
33759
33760 /* dSPACE RTICAN XTD Srvc-Message Block */
33761 {
33762 /* ... Set the message into sleep mode */
33763 while ((rtican_type1_tq_error[2][1] = can_tp1_msg_sleep
33764 (CANTP1_RX_SPMSG_M3_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33765 }
33766
33767 /* Terminate for S-Function (rti_commonblock): '<S467>/S-Function1' */
33768
33769 /* dSPACE RTICAN STD Srvc-Message Block */
33770 {
33771 /* ... Set the message into sleep mode */
33772 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33773 (CANTP1_RX_SPMSG_M3_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33774 }
33775
33776 /* dSPACE RTICAN XTD Srvc-Message Block */
33777 {
33778 /* ... Set the message into sleep mode */
33779 while ((rtican_type1_tq_error[2][1] = can_tp1_msg_sleep
33780 (CANTP1_RX_SPMSG_M3_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33781 }
33782}
33783